我试图跳过BOM以UTF-8编码的文件,但我在IFS测试失败:C/C++ - 符号字符比较
int i = 0;
if(str[i] == '\0xef') {
++i;
}
if(str[1] == '\0xbb') {
++i;
}
if(str[2] == '\0xbf') {
++i;
}
我不知道为什么他们不这样做工作。在签名和未签名之间必须存在某种隐式转换,并且Visual Studio在调试时显示带有2个字节的字符代码,即使我使用1个字节的字符。
发生了什么事?谢谢:)
''\ 0xbf''是多字节字符常量 –
如何定义str?它是带符号还是无符号字符数组? – Marian
这是一个const char *。我也试过0xbf而不是'\ 0xbf',但结果是一样的。 – Virus721