今天编译代码的时候,意外遇到如下错误:
illegal character: 5279
文件是UTF-8编码,按理说不应该会出错。
于是去网上查阅资料,发现UTF-8编码有2种:
UTF-8-BOM编码和UTF-8无BOM编码
初步怀疑可能2种编码有关。
由于错误提示发生文件的第一个字符位置,怀疑可能是文件带有BOM标记。
具体原因如下:
某些编辑器会往utf8文件中添加utf8标记(editplus称其为签名),它会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),它的表示的是 Unicode 标记(BOM)。 因此要解决这个问题首先用editplus打开这个文件,从Doucument菜单中选择Permanet Settings,有三个分类,分别是General,File, Tools.点击File,右边会有一项是 UTF-8 signature: 选择 always remove signature. 点击OK 。中文版本的 Editplus 下操作的菜单结构如下: 文档->参数设置->文件->UTF-8签名->总是移除签名->确定 ,这样就设置了UTF-8格式不需要在文件前面加标记,最后把文件另存为utf-8格式就好了.
解决办法
打开Notapad++,导入文件,执行“格式(M)–>转为UTF-8无BOM编码格式”
保存,退出。
时间: 2024-09-24 15:07:29