Steps to repro the issue:
Add a file to my P4 server, the file is detected as 'utf8' file type.
The file I added is utf8 encoding without BOM.

nobomb show in vim

p4 client detect it as 'utf8'

If I do the same steps on other device, the file type is detected as 'unicode';
sync the file, the file become utf with BOM

As you know, BOM in html file can cause lots of issue....Is there anyone who can help me to solve this issue?
Environment:
Client version: Rev. Perforce Visual Client/MACOSX107X86_64/2015.2/1312139
p4 server is in "unicode" mode.

Files of type 'utf8' always sync with the BOM - 'utf8' type is designed that way (see relnotes, #998379). If you don't want the BOM you're going to have to change it to 'text' or 'unicode'.
What you describe is a known bug(job083614) in your 15.2: "if P4CHARSET=utf8 and server is unicode and file has bytes >x80 and is valid utf8" then file is detected as utf8, should be unicode. This fix should hopefully (no promises) be in 16.2.
Earlier p4 clients <= 15.1 should detect it as 'unicode'.
If you don't want type 'utf8' but rather 'unicode':
You can also have a trigger to prevent utf8 file types from being submitted(change-submit)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With