您好,登錄后才能下訂單哦!
php word 亂碼如何解決?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
php word亂碼的解決辦法:首先打開“/Writer/Word2007/Base.php”文件;然后添加“$objWriter->writeAttribute(‘w:eastAsia’, $font)”內容;最后保存修改即可。
PHPword解決中文亂碼
一、增加東亞字體支持
打開并編輯路徑/Writer/Word2007/Base.php文件內容,大概在第349行(行數隨著版本可能會有變化)大概函數_writeTextStyle內添加:
$objWriter->writeAttribute(‘w:eastAsia’, $font)
比如我的修改片段基本是下面這樣:
Font if($font != ‘Arial’) { $objWriter->startElement(‘w:rFonts’); $objWriter->writeAttribute(‘w:eastAsia’, $font);// 添加這行 $objWriter->writeAttribute(‘w:ascii’, $font); $objWriter->writeAttribute(‘w:hAnsi’, $font); $objWriter->writeAttribute(‘w:cs’, $font); $objWriter->endElement(); }
二、 解決中文亂碼問題(此解法對于GBK編碼有用,不適用于UTF-8)
編輯PHPWord/Template.php
找到代碼$replace = utf8_encode($replace);,刪除或者注釋掉這行代碼,添加$replace = iconv( ‘gbk’,’utf-8′, $replace);,比如代碼改為如下:
if(!is_array($replace)) { //$replace = utf8_encode($replace); $replace =iconv(‘gbk’, ‘utf-8′, $replace); // 注釋掉上面行后添加這行 }
調用方式如下:
$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
上面的代碼主要解決模板的問題,
下面同樣的道理,解決Section添加文本的問題,
在PHPWord/Section.php找到代碼$givenText = utf8_encode($text);,
刪除或者注釋掉這行代碼,添加$givenText = iconv(‘gbk’, ‘utf-8′, $text);,比如代碼如下:
public function addText($text, $styleFont = null, $styleParagraph = null) { //$givenText = utf8_encode($text); $givenText = iconv(‘gbk’, ‘utf-8′, $text); // 注釋掉上面行后添加這行 }
感謝各位的閱讀!看完上述內容,你們對php word 亂碼如何解決大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。