首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHPWord 中文亂碼解決辦法(模板與直接生成兩種情境)

     編輯:PHP 相關知識

PHPWord 非國人開發,對中文支援較弱。本文針對兩種常見使用情境提供修正方法,親測有效。

情境一:使用模板產生 Word,中文亂碼

編輯 phpword/Template.php,找到:

$replace = utf8_encode($replace);

修改為:

$replace = iconv('GBK', 'UTF-8', $replace);

前提:PHP 檔案本身儲存為 GBK 編碼。

情境二:直接生成 Word,呼叫 addText 時中文亂碼

編輯 phpword/Section.php,找到:

$givenText = utf8_encode($text);

修改為:

$givenText = iconv('GBK', 'UTF-8', $text);

其他類似情境

原理相同:PHPWord 內部預設用 utf8_encode(僅適用 ISO-8859-1 轉 UTF-8),若來源為 GBK/BIG5 需改用 iconv 或 mb_convert_encoding。

注意事項

  • 確認 PHP 檔案編碼與 iconv 的 from_encoding 參數一致。
  • 若專案統一使用 UTF-8,可直接移除編碼轉換行,或改為 $replace = $replace;(視版本而定)。
  • 修改第三方庫檔案會增加維護成本,建議用 Composer 管理並透過 patches 自動套用修正。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved