[编码] 无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检测。
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检测。
相关文章推荐
- 使用 Python 操作 Evernote API
- “分布式机器学习的故事”系列分享
- 随记(八)--图片排版UIViewContentMode
- android小知识理解
- Linux 下多线程排序的实现
- scoi2015 bzoj4444 国旗计划
- $.ajax()方法详解
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- Java中比较器 Comparator 的简单例子
- ActiveMq入门
- 正则表达式--一定会用到的技术
- springMVC4(3)方法入参灵活绑定