在svn上提交了一个文件trac进行codereview 的时候,发现其中的中文是乱码,猜测是文件编码的问题,用emedit查看之后,发现这个文件的编码时utf-8 (无bom)格式,然后对比了一下其它显示正确的文件格式:utf-8(含bom),问题就是bom有无的问题,使用emedit保存完后,调查了一下这个bom是什么.
"UTF- 8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开 头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码,很多软件还要求读入的文件必须带BOM。可 是,还是有很多软件不能识别BOM。"
"UTF-8 BOM又叫UTF-8 签名,其实UTF-8的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上"
才发现这个bom在utf-8格式的文件中代表了头三个字节“EF BB BF”,很多文件就没有这个概念,经常会被当做数据进行处理。php好像暂时不支持,不能处理带bom的utf-8文件。
所以说,数据文件最好不要带bom,当然你如果知道bom,处理程序中做了处理那就是另一说了。,
网页题目:关于文件的UTF-8的BOM标记问题记录
本文路径:
http://cdkjz.cn/article/ijphjh.html