PHP ファイルのアップロードで UTF-8 でエンコードされたファイル名を処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-03 05:56:30
オリジナル
181 人が閲覧しました

How to Handle UTF-8 Encoded Filenames in PHP File Uploads?

PHP での UTF-8 ファイル名のアップロード

ファイルのアップロードを処理する場合、UTF-8 などの特殊文字を含むファイル名の処理エンコードには課題が生じる可能性があります。この問題を解決する方法は次のとおりです。

提供されたコード スニペットは、UTF-8 でエンコードされたファイル名をアップロードしようとしますが、サーバー上の結果のファイル名が文字化けするという問題が発生します。これを修正するには、次の解決策を検討してください。

オプション 1: ファイル名をシステム コードページに変換する

特定のオペレーティング システムでは、ファイルシステム関数はシステムのコードページ内の文字のみをサポートする場合があります。 。この場合、関数 iconv を使用してファイル名を適切なコードページに変換します。たとえば、簡体字中国語の Windows 8 の場合、次を使用します。

<code class="php">$filename = iconv("UTF-8", "cp936", $filename);</code>
ログイン後にコピー

オプション 2: システム コードページとファイル名のコードページを変更する

別のアプローチは、システムのコードページを変更することです。コントロール パネルの設定を使用して、コードページをベトナム語 (1258) に変更します。次のコードを使用して、ファイル名もコードページ 1258 に変換します:

<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);</code>
ログイン後にコピー

選択の考慮事項:

選択肢 1: システム コードページの制限

このオプションは、ファイル名の文字をサポートされているシステム コードページに制限します。これには、すべてのベトナム語文字が含まれるわけではありません。

選択肢 2: システム コードページの変更

このアプローチではベトナム語文字の使用が許可されますが、システムのコードページが変更されるため、他のアプリケーションに影響を与える可能性があり、必ずしも完全なソリューションが提供されるとは限りません。

最終的に、理想的な選択はシステム構成と特定の要件によって異なります。

以上がPHP ファイルのアップロードで UTF-8 でエンコードされたファイル名を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート