ファイルをアップロードするときに、元のテキスト名が問題にならない場合がありますが、中国語の場合は文字化けが発生する可能性があります。 phpアップロードファイルの名前が文字化けする原因と解決策を見てみましょう。
ここ数日 Windows に XAMPP をインストールし、PHP について学び始めるつもりです。ここ数日、php によるファイルのアップロードにさらされてきましたが、excel ファイルをアップロードしようとすると、ファイル名が中国語の名前の場合、エラーが報告されるというイライラする問題が発生しました。
その後、よく考えてみると、私が書いた php ファイルは UTF-8 エンコーディングを使用しているはずです。私の推測が正しければ、APACHE は処理に GBK を使用するはずです。もちろん、今は確信が持てません。専門家がアドバイスをくれることを願っています)。この問題について考えた後、関連するチュートリアルを検索し、iconv 関数を見つけました。
関数プロトタイプ: string iconv (string in_charset, string out_charset, string str)
使用例: $content = iconv(”GBK”, “UTF-8”, $content);
この例の目的は、$content を GBK から UTF-8 エンコーディングに変換することです。
文字化け問題のキーコード:
コードは次のとおりです | コードをコピー |
$name=iconv("UTF-8","gb2312", $name); move_uploaded_file($tmpname, $this->final_file_path); $name=iconv("gb2312","UTF-8", $name);
|
例
$sFileName = "sda.php";
$sオリジナルファイル名 = $sファイル名;
$sExtension = s str($sFileName, (strrpos($sFileName, '.') + 1));//拡張子を検索します
$sExtension = strto lower($sExtension);
$sFileName = date("YmdHis").rand(100, 200).".".$sExtension; //これは新しいファイル名です。すべて数字になり、文字化けはありません。