最近、PHP を使用してファイルを書き込んでいたときに、書き込まれた内容が文字化けするという奇妙な問題に遭遇しました。いくつかの検索と調整を行った結果、ついに解決策を見つけたので、それを共有したいと思います。
最初にエンコード方法を確認する必要があります。PHP のデフォルトのエンコード方法は ISO-8859-1 で、中国語のほとんどのエンコード方法は次のとおりです。 UTF-8 。したがって、ファイルの先頭に次のコードを追加する必要があります。
header('Content-type:text/html;charset=utf-8');
このコード行は、ドキュメントの解析に UTF-8 エンコーディングを使用するようにブラウザに指示します。
書き込まれたファイルがプレーン テキスト ファイルではなく、HTML または XML ファイルの場合は、ファイル エンコーディング方法を設定する必要があります。次のコードを使用します。
header('Content-type:text/html;charset=utf-8'); $file = "example.html"; file_put_contents($file, $data); if ($file == "example.html") { exec("iconv -f utf-8 -t utf-8//IGNORE \"$file\" > \"$file.utf8\""); unlink($file); rename("$file.utf8", $file); }
このコードは、ファイル エンコーディングを UTF-8 に変換し、UTF-8 以外の文字をすべて削除します。
上記の 2 つの方法で問題を解決できない場合は、PHP.ini ファイルを変更し、デフォルトのエンコード方法を設定してみてください。 UTF-8 に変換します。具体的な操作は次のとおりです。
PHP.ini ファイルで「default_charset」を検索し、以下に示すようにその値を「UTF-8」に変更します。
default_charset = "UTF-8"
変更後、再起動します。 Apache サーバーにアクセスすると、有効になります。
まとめると、ファイル書き込み時の文字化けはエンコード方式の違いが主な原因であり、エンコード方式の確認やファイルエンコードの設定、PHP.iniファイルの修正などで解決できます。この記事が皆さんの同様の問題の解決に役立つことを願っています。
以上がPHPファイル作成時の文字化けを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。