溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php word 亂碼如何解決

發(fā)布時間:2020-10-23 14:08:18 來源:億速云 閱讀:174 作者:小新 欄目:編程語言

php word 亂碼如何解決?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热?,讓我們一起來看看吧?/p>

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 亂碼如何解決大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI