清除文件中的BOM特殊不可见字符
来源:互联网 发布:程序员面试流程 编辑:程序博客网 时间:2024/05/20 17:59
在一些特殊的编码下生成的文件会含有特殊字符而且文件打开不可见,但在对程序造成很大困扰,解决方法:
EF BB BF = UTF-8 (可选标记,因为Unicode标准未有建议)
FE FF = UTF-16, big-endian (大尾字节序标记)
FF FE = UTF-16, little-endian (小尾字节序标记) (也是windows中的Unicode编码默认标记)
00 00 FE FF = UTF-32, big-endian (大尾字节序标记)
FF FE 00 00 = UTF-32, little-endian (小尾字节序标记)
对于UTF-8来说,BOM标记的有无并不是必须的,是可选的,因为UTF8字节没有顺序,不需要标记.
也就是说一个UTF-8文件可能有BOM,也可能没有BOM.
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节,
windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的,
然而这个只是微软暗自作的标记, 其它平台上不一定会对UTF-8文本文件做个这样的标记。
微软的一些软件会做这种检测,但有些软件不做这种检测, 而把它当作正常字符处理。(传说中的乱码问题)
function removeBom($string){ if(substr($string, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) { return substr($string, 3); } return $string;}
BOM
BOM(byte-order mark)文件编码头,即 字节顺序标记.
它是插入到以UTF-8、UTF16或UTF-32编码文件开头的特殊标记,
用来标记多字节编码文件的编码类型和字节顺序(big-endian或little- endian)。
一般用来识别文件的编码类型。
EF BB BF = UTF-8 (可选标记,因为Unicode标准未有建议)
FE FF = UTF-16, big-endian (大尾字节序标记)
FF FE = UTF-16, little-endian (小尾字节序标记) (也是windows中的Unicode编码默认标记)
00 00 FE FF = UTF-32, big-endian (大尾字节序标记)
FF FE 00 00 = UTF-32, little-endian (小尾字节序标记)
对于UTF-8来说,BOM标记的有无并不是必须的,是可选的,因为UTF8字节没有顺序,不需要标记.
也就是说一个UTF-8文件可能有BOM,也可能没有BOM.
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节,
windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的,
然而这个只是微软暗自作的标记, 其它平台上不一定会对UTF-8文本文件做个这样的标记。
微软的一些软件会做这种检测,但有些软件不做这种检测, 而把它当作正常字符处理。(传说中的乱码问题)
阅读全文
0 0
- 清除文件中的BOM特殊不可见字符
- 文件中的不可见字符问题
- 再谈文件中的不可见字符
- vim显示不可见特殊字符
- oracle中的不可见字符
- 又是文件中的不可见字符问题
- 把字符串中的特殊字符清除了
- EXCEL中的神秘的不可见字符
- SQL字符串中的不可见字符
- 解析文件时出现不可见字符
- 替换xml中的非法字符及不可见字符
- 常用不可见字符
- 不可见字符
- linux 文本中的不可见字符和处理
- PostgreSQL 去除字符串中的不可见字符 终极方法
- mysql load 文件,以不可见字符为分隔符
- 关于fastjson序列化不可见特殊字符存在的bug
- php 清除文件的Bom
- How to output .ply file with RPly?
- MyBatis增强工具pndao-帮你自动写SQL
- 消息扩散(Tarjan算法缩点处理)
- wordpress点击排行的完美实现
- 《你被点名了》
- 清除文件中的BOM特殊不可见字符
- HDU 1729 Stone Game(SG函数)
- Linux驱动程序的结构例程
- 2017.8.11
- gcc warning:‘Test::b’will be initialized after
- 双重曝光,制作二次曝光人像风景照效果
- android 解决weixin微信jar包在打包的时候出现的java.io.IOException: Can't read问题
- Android后退事件处理
- 剖析Yarn框架