[英]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字節順序標記寫入文件的開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.