跨平台Word文档编码问题

时间:2014-05-15 05:07:29

标签: php encoding utf-8 ms-word

我有一个生成Word文档的PHP脚本(.doc)。

它需要来自HTML实体的字符,例如Π,并使用PHP html_entity_decode()解析它们。

$line = html_entity_decode($text, ENT_NOQUOTES | ENT_HTML401, "UTF-8");

在Linux上的Libre Office中打开生成的文件时,文件正确加载(字符编码正确)。但是,在Windows上的Microsoft Word中打开时,非ASCII字符不正确。例如,大写希腊字母PI(Π)将呈现为中文字符()。

我认为有一个缺少的标题或元数据告诉单词数据是以UTF-8编码的。

1 个答案:

答案 0 :(得分:0)

讨厌傻瓜,但我已经回答了我自己的问题。

在打开文件写作之后,我补充道:

fwrite($fp, pack("CCC",0xef,0xbb,0xbf));

这会将UTF-8字节顺序标记写入文件的开头。

http://en.wikipedia.org/wiki/Byte_order_mark