在本篇文章中,Unicode指的是字符集而非UTF-16。 在Windows系统中,UTF8编码会被当作为普通的ASCII编码文件,ASCII是无法储存多字节字符的,所以使用UTF-8并且代码中存在多字节字符时会提示“该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”,遇到这种情况就是无法正确识别UTF-8文件,所以必须添加一个BOM头,即UTF-8 BOM编码格式,才可以正确识别为UTF-8编码。 在MSVC编译器中,可以使用UTF-8 BOM、其他Unico…