ホームページ >バックエンド開発 >PHPチュートリアル >アップロードしたファイルの中国語文字化けの問題
文字化けファイルのアップロード
すべての文字セットは utf8 に設定されていますが、ファイルをアップロードすると、ファイル ディレクトリで中国語のファイル名が見つかり、この時点でファイル名が GB2312 コードに変換されてからファイルがアップロードされます。 name は Chinese を表示できますが、パスを保存するときにデータベースを挿入できないため、テーブルを GB2312 の文字セットに変更しました。論理的にはこれで十分なはずですが、それでも挿入できません。何をすべきか これには、システム エンコーディングと文字エンコーディングという 2 つの概念が含まれます
アップロードする前にどのシステムを使用していたかわかりません (98 以降)。 「gb2312」を選択しました エンコーディングは実際には cp936 (GBK と同等) エンコーディングです
データベース gb2312 の文字エンコーディングは gbk とは異なりますが、中国語の文字がはるかに少ないため、gbk エンコーディングを選択する必要があります
それでも機能しない場合は、サーバーが Windows の場合、PHP はまだ Windows で Unicode パスを効果的に処理できないため、他の要素を考慮する必要があります。Windows では、フル パス内の文字が文字セットを超えていると仮定して、混合エンコーディングが使用されます。 *nix は一律に UTF-8 を使用するため、パスはエンコードされて記録されるため、問題は大きくありません
csdn の開発者はまた不必要なことを行ったため、残念ながら投稿の分割はなくなりました。 ..
解決策のアイデアを教えてください。試してみましょう
または、常に UTF-8 を使用し、アップロード後に PHP ファイルで再度強制的に変換し、ファイル名が UTF-8 であるかどうかを検出します。 GBK または GB2312 を統一して UTF-8 に変換します
参考 http://www.cnblogs.com/rosenia/archive/2013/ 05/20/3088146.html 配列に GB2312 をもう 1 つ追加します
保存してください