ホームページ >バックエンド開発 >PHPの問題 >PHPのファイル名に漢字は入れられないのでしょうか?

PHPのファイル名に漢字は入れられないのでしょうか?

(*-*)浩
(*-*)浩オリジナル
2019-10-16 15:06:212328ブラウズ

中国語のファイル名を使用することはお勧めできません。

中国語は URL エンコードで送信されるため、サーバーに送信するときにデコードされますが、エンコードと一致しない場合はデコードされません。

PHPのファイル名に漢字は入れられないのでしょうか?

簡単に言えば、URL 内の中国語は、一般的なブラウザではデフォルトで UTF-8 でエンコードされます。サーバーに送信してください。中国語 Windows 環境サーバーでは、URL をデコードするときに gb2312 エンコードがデコードに使用されるため、アドレス バーに入力した元の中国語テキストを取得できなくなります。

そのため、ファイル名が見つからないというメッセージが表示されます。

中国語を使用する必要がある場合、解決策はローカルのブラウジング ソリューションに限定されます。

ブラウザで、[インターネット オプション] メニューを開き、[詳細設定] を選択し、[検索] を選択します。 「UTF-8 URL を送信」し​​て、前のフックを削除します。次に、確認します。

#ブラウザを再起動します。このようにして、アドレス バーの中国語はデフォルトで gb2312 エンコードで送信されるため、サーバーは中国語のファイル名を持つファイルを正しく見つけることができます。

使用された前の Web ページのグラフセットutf-8 とファイル また、utf-8 を使用し、fopen() を使用して中国語のファイル名を持つファイルを作成すると、問題が発生し、ファイル名が文字化けします。

多くのドキュメントを確認し、さまざまな方法を試しましたが、解決できませんでした。当初は他の方法を使用してこの問題を回避しようと考えていましたが、突然、Windows のデフォルトのテキスト エンコーディングが問題であることに気づきました。これを理解するには、作成したファイル名が文字化けしないように、Web ページも ANSI エンコードする必要があります。

その後、検証を開始しました。ANSI で Web ページを保存し、chartset ステートメントを削除しました。問題はありませんでしたが、Web ページのコンテンツが文字化けしました。後で、この Web ページには他の Web ページも含まれていることを思い出したので、インクルードを変​​更しました ウェブページも保存するために ansi に変更されました、笑すべてOKです

プログラミングは本当に積み重ねに依存する仕事です。Windows のデフォルトのエンコーディングが ansi であることを知らなかったら、この問題は長い間解決されないでしょう

ps: < meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > このメタ タグは次のようにする必要があります。 に配置します

以前はのみ機能しました。その後、より良い解決策を考えました。Web ページはまだエンコードされ、utf-8 で保存されています。それは、ファイルをエンコードするだけの問題です。 fopen() でファイル名パラメータを別途指定します。PHP には、iconv() というエンコーディングを変更するプログラムがあります。これは、中国語のファイル名の文字化けを避けるために、utf-8 を gb2312 に変換します。

以上がPHPのファイル名に漢字は入れられないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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