Home > Backend Development > PHP Problem > How to solve php word garbled problem

How to solve php word garbled problem

藏色散人
Release: 2023-03-06 19:12:01
Original
2482 people have browsed it

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.

How to solve php word garbled problem

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)
Copy after login

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();
}
Copy after login

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);
// 注释掉上面行后添加这行
}
Copy after login

The calling method is as follows:

$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
Copy after login

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);
// 注释掉上面行后添加这行
}
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template