遇到一个错误,报错信息如下
error:stray \357’ in program
error:stray \273’ in program
error:stray \277’ in program
报错信息显示错误出现在第一行,第一行代码是 #include "bootpack.h"
本以为是bootpack.h中有错误,没有查到错误,查找资料得知
windows下为了区分UTF-8编码格式,在以UTF-8编码的文本文件前写入三个字节的标志(0xef 0xbb 0xbf)来区分UTF-8编码的文本文件,也就是带BOM的UTF-8。而linux下的一些编译器不识别BOM,所以就会报错。
可以用记事本另存为ANSI编码的文件来解决。
选择ANSI点击保存时弹出了一个对话框
点击确定并没有用,编译还是报错,我用editplus打开发现文件里有一个字符“?”,应该是编码不同导致的无法正常显示
把“?”去掉,重新另存为ANSI编码,点击确定后再次编译通过。
这个错误应该是由于复制了其他Unicode编码文件里的代码,然后粘贴在我的文件里,我的文件不是unicode编码,两种编码的符号混在了一起,导致了错误。
花费了很长时间才找到这个bug,这一定是编译器在教导我不要copy