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 サイトの他の関連記事を参照してください。