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

phpでアップロードしたファイルの中国語ファイル名が文字化けする_PHPチュートリアル

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

ファイルをアップロードするときに、元のテキスト名が問題にならない場合がありますが、中国語の場合は文字化けが発生する可能性があります。 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; //これは新しいファイル名です。すべて数字になり、文字化けはありません

http://www.bkjia.com/PHPjc/633205.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633205.html技術記事ファイルをアップロードするときに、元のテキスト名は問題ありませんが、中国語の場合は文字化けする可能性があります。今日はそれをまとめます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。