mb_convert_encoding是如何工作的



我在导出UTF-8数据到Excel时遇到了麻烦,但现在没事了,因为我发现了这个:

Microsoft Excel管理。csv文件中的变音符?

看这一行:

echo chr(255) . chr(254) . mb_convert_encoding($csv, 'UTF-16LE', 'UTF-8');

当我删除chr(255)。chr(254)一开始Excel不能正常显示UTF-8数据,浏览器也不能。

这当然不是问题,我只是想知道,为什么那些chr(255)和chr(254)是必不可少的

似乎,Excel需要字节顺序标记(BOM)。BOM总是在文件的开头,FFFEFEFF中的一个。它描述了多字节字符的各个字节出现的顺序(比如"向前"或"向后")。通常强烈建议省略它,但似乎excel使用它来确定文件编码。

Excel和PHP对表示这种字符编码的BOM(字节顺序标记)的看法不同。使用chr(255).chr(254),您将手动强制输出为Excel所需的输出。见http://nl.wikipedia.org/wiki/Endianness

相关内容

  • 没有找到相关文章

最新更新