# 推奨: 「php 文字化けの解決策: まず「/Writer/Word2007/Base.php」ファイルを開き、次に「$objWriter->writeAttribute('w:eastAsia', $font)」の内容を追加します。 "; 最後に変更を保存するだけです。
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 サイトの他の関連記事を参照してください。