writeAttribute('w:eastAsia', $font)"; finally save the changes."/> writeAttribute('w:eastAsia', $font)"; finally save the changes.">
Home >Backend Development >PHP Problem >How to solve php word garbled problem
php The solution to garbled word: first open the "/Writer/Word2007/Base.php" file; then add the content of "$objWriter->writeAttribute('w:eastAsia', $font)"; finally Just save the changes.
Recommended: "PHP Video Tutorial"
PHPword solves Chinese garbled characters
1. Add support for East Asian fonts
Open and edit the content of the path/Writer/Word2007/Base.php file, probably at line 349 (the number of lines may change with the version), probably the function _writeTextStyle Add:
$objWriter->writeAttribute(‘w:eastAsia’, $font)
For example, my modified fragment is basically as follows:
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(); }
2. Solve the problem of Chinese garbled characters (this solution is useful for GBK encoding, not applicable to UTF-8)
Edit PHPWord/Template.php
Find the code $replace = utf8_encode($replace);, delete or comment out this line of code, and add $replace = iconv( 'gbk','utf-8 ′, $replace);, for example, the code is changed to the following:
if(!is_array($replace)) { //$replace = utf8_encode($replace); $replace =iconv(‘gbk’, ‘utf-8′, $replace); // 注释掉上面行后添加这行 }
The calling method is as follows:
$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
The above code mainly solves the template problem,
The same principle applies below , solve the problem of adding text to Section,
Find the code $givenText = utf8_encode($text); in PHPWord/Section.php,
Delete or comment out this line of code, add $givenText = iconv('gbk', 'utf-8′, $text);, for example, the code is as follows:
public function addText($text, $styleFont = null, $styleParagraph = null) { //$givenText = utf8_encode($text); $givenText = iconv(‘gbk’, ‘utf-8′, $text); // 注释掉上面行后添加这行 }
The above is the detailed content of How to solve php word garbled problem. For more information, please follow other related articles on the PHP Chinese website!