您的位置:首页 > 其它

[编码] 无BOM的UTF8

2016-04-01 15:58 197 查看
问题的发生过程

1. 配了一个lua脚本,用记事本创建的,默认保存为ANSI格式。脚本读取正常。

2. 发现以前的脚本都是UTF8的,所以用记事本另存为UTF8了。脚本读取就不正常了,提示错误是第一行有个非法的问号。

问题原因

记事本保存的UTF8是带BOM的,即带了一个UTF8的标志:FFFE。 脚本读取的底层没有识别这个,就直接读了,FFFE直接读的话就是有个问号。

问题解决

用NotePad++或者UltraEdit另存为不带BOM的UTF8格式就好了。

参考文章

http://tieba.baidu.com/p/2112543977

一句话建议:涉及兼容性考量时,不要用记事本,用专业的文本编辑器保存为不带 BOM 的 UTF-8。

关于UltraEdit的问题

使用UltraEdit,ctrl+h,查看十六进制显示的时候,无论查看带不带BOM的UTF8文件,都显示FFFE,这是UTF16的标识,咋回事?

原因在于UltraEdit,首先识别了UTF8个格式的文件,然后转成UTF16格式显示。

为啥这么做? 我猜是因为UTF8是不定长的,UTF16是定长的,定长的编码易于显示。

如果不像要这个转化,就想看UTF8带BOM和不带BOM的原始编码,就把这个设置去掉:高级-->配置-->文件处理-->Unicode/UTF-8检测。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: