ホームページ >バックエンド開発 >PHPチュートリアル >Windowsシステム上でPHPのfopen関数で中国語名のドキュメントを作成した場合に文字化けが発生する問題について
ご存知のとおり、PHP の fopen 関数は新しいドキュメントを作成できますが、作成したドキュメントの名前が中国語であり、Windows システムを使用している場合、ドキュメント名の中国語の部分が文字化けすることがわかります。実験してみましょう:
<code><span><?php </span><span>$fileName</span> = <span>__DIR__</span> . <span>'/中文文档.txt'</span>; <span>//$fileName = iconv('UTF-8', 'GBK', $fileName);</span><span>$fp</span> = fopen(<span>$fileName</span>, <span>'w'</span>); fwrite(<span>$fp</span>, <span>'这是中文内容'</span>); fclose(<span>$fp</span>); <span>?></span></span></code>
上記のスクリプトを実行し、新しく作成されたドキュメントを参照します:
ご覧のとおり、ドキュメント名は文字化けしていますが、ドキュメントの内容は文字化けしていません。
上記のPHPスクリプトの2番目の文のコメントを削除し、$fileName
UTF-8エンコードからGBKエンコードに変換してからスクリプトを再度実行すると、ドキュメント名が文字化けしないことがわかります:
現在、この状況は Windows システムでのみ発生しており、Mac OS/Linux では正常です。したがって、Unix/Linux システムでは、ファイル名のエンコーディングを変換する必要はありません。ファイル名を GBK エンコードに変更すると、文字化けが発生します。例:
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。
上記では、PHP の fopen 関数を使用して Windows システム上で中国語名のドキュメントを作成する際に発生する文字化けの問題を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。