ホームページ  >  記事  >  バックエンド開発  >  PHP で中国語ファイルをアップロードする際のファイル名が文字化けする問題、_PHP チュートリアル

PHP で中国語ファイルをアップロードする際のファイル名が文字化けする問題、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:08:541165ブラウズ

PHPで中国語ファイルをアップロードする際のファイル名が文字化けする問題

PHPでファイルをアップロードするのは最も基本的な技術点ですが、さらに深く進むと、解決する必要がある問題がたくさんあります。ファイルを作成すると、ファイル名が文字化けしてしまいます。

以下は問題のコードです。非常に簡単です:

1.質問コード

html部分:

リーリー

php部分:

リーリー

「test data.txt」というファイルをアップロードしました、おお、ファイルはアップロードできましたが、ファイル名が文字化けしていました。

2.最初のテスト

オンラインで解決策を検索し、

リーリー

に変更されました リーリー

iconv関数の戻り値がfalseであることが分かりました。

関数マニュアルを確認して、2 番目のパラメータが特別な使い方をしていることを確認してください。簡単な翻訳は私ですエンコーディングの後に //TRANSLIT または //IGNORE を追加できます。前者は、翻訳できない文字を最も近い文字に変換します。後者は、変換できない文字を単純に無視します。



試してみる:

リーリー

結果:

リーリー

つまり、漢字は変換できないし、近い文字も無いようです ネットで紹介されている方法は万能ではないようです。

3. オンライン導入方法が失敗した場合は、もう一度試してください

推測させてください、おそらく私のシステムは中国語ファイルを作成するときに文字化けを引き起こすでしょう、それで私はコードを書き直しました:

リーリー

結果は文字化けもなく、正常に作成されました。 。 。つまり、システムの問題ではありません。

考えてみてください、私のphpファイル自体はutf8でエンコードされています

リーリー

このステートメントは utf8 エンコードを使用する必要があるため、前にアップロードしたファイル名は utf8 エンコードであってはなりません。ソース文字列自体が utf8 エンコードではないため、次のステートメントは間違っているはずです:

リーリー

関数を使用してソース文字列のエンコーディングを確認します:

リーリー

結果はCP936、つまりソース文字列エンコーディングはGBKです。

試してみる

リーリー

問題は解決し、文字化けはなくなりました

4.別の解決策

実際には、HTML ファイルの head タグの途中に

を追加するという別の解決策があります。 リーリー

したがって、エンコーディングは統一されたままであり、トランスコードする必要はもうありません

5.以下が結論です

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/949209.html技術記事 PHP で中国語ファイルをアップロードする際のファイル名が文字化けする問題 PHP でファイルをアップロードすることは最も基本的な技術的な点ですが、さらに深く進むと、解決する必要がある問題がたくさんあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。