簡體   English   中英

跨平台Word文檔編碼問題

[英]Cross platform Word Document encoding issue

我有一個生成Word文檔( .doc )的PHP腳本。

它從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編碼的。

討厭看傻瓜,但我已經回答了我自己的問題。

打開文件進行寫入后,我添加了:

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

這會將UTF-8字節順序標記寫入文件的開頭。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM