ホームページ >バックエンド開発 >PHPの問題 >PHPのワード文字化け問題の解決方法

PHPのワード文字化け問題の解決方法

藏色散人
藏色散人オリジナル
2020-10-22 09:42:572505ブラウズ

php 文字化けの解決策: まず「/Writer/Word2007/Base.php」ファイルを開き、次に「$objWriter->writeAttribute('w:eastAsia', $font)」の内容を追加します。 "; 最後に変更を保存するだけです。

PHPのワード文字化け問題の解決方法

# 推奨: 「

PHP ビデオ チュートリアル

#PHPword で中国語の文字化けを解決

1. 東アジアのフォントのサポートを追加します

path/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();
}

2. 中国語の文字化けの問題を解決します (この解決策は 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’, ‘中文’));

上のコードは主にテンプレートの問題を解決します。

同じ原則が以下に適用され、セクションにテキストを追加する問題を解決します。

コードを見つけます $givenText = utf8_encode($text); PHPWord/Section.php で、

このコード行を削除またはコメント アウトし、$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のワード文字化け問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。