PHP - Windows での UTF-8 ファイル名の処理
問題の説明
UTF-8 でエンコードされたファイル名を使用してファイルをアップロードすると、Windows で文字が歪んでしまいます。
提案された解決策
この問題を解決するための元の提案には、iconv() 関数を使用してファイル名を Windows システムと互換性のあるコード ページ (CP1258 など) に変換することが含まれていました。ただし、このアプローチには制限があります。
更新されたソリューション
実際には、PHP ファイルシステム関数は、システムのアクティブなコード ページ内の文字のみを処理できます。したがって、考えられる解決策は 2 つあります。
オプション 1:
- ファイル名の文字をシステムのコード ページ (例: この場合は CP437) に制限します
- このオプションは、ベトナム語文字の使用を制限します。
オプション 2:
- システムのコード ページをベトナム語に変更します (例: CP1258) )
- ファイル名を新しいコード ページに変換します (例: $fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- このオプションもファイル名文字をベトナム語コード ページ 1258 に制限します。
両方のオプションの欠点:
-
オプション 1:特定のベトナム語文字を使用します
-
オプション 2: システム コード ページを変更する要件とファイル名文字の制限
システム コード ページの変更に関する追加情報
システムのコード ページを変更するには:
- コントロール パネル > に移動します。地域
- 「管理」タブを選択します
- 「非 Unicode プログラムの言語」で、「システム ロケールの変更」ボタンをクリックします
- 「ベトナム語(ベトナム)」を選択しますドロップダウンメニューから
以上がWindows 上の PHP で UTF-8 ファイル名を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。