ホームページ > バックエンド開発 > PHPチュートリアル > PHP のファイルシステム関数で UTF-8 ファイル名を処理するにはどうすればよいですか?

PHP のファイルシステム関数で UTF-8 ファイル名を処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-15 01:35:14
オリジナル
656 人が閲覧しました

How Can I Handle UTF-8 Filenames in PHP's Filesystem Functions?

PHP のファイルシステム関数での UTF-8 ファイル名の処理

PHP の mkdir 関数を使用して UTF-8 文字を含むフォルダーを作成すると、次のようなメッセージが表示される場合がありますエンコーディングによる Windows エクスプローラーの問題

解決策: URL エンコード ファイル名

この問題を解決するには、urlencode 関数を使用して、目的のフォルダー名を URL セーフ形式に変換してから、フォルダー名を URL に渡します。 mkdir:

$dir_name = urlencode("Depósito");
mkdir($dir_name);
ログイン後にコピー

これにより、フォルダー名のすべての文字が有効な文字列にエンコードされます。すべてのオペレーティング システムのファイル名。元の UTF-8 ファイル名を取得するには、urldecode を使用します。

代替ソリューション (注意事項あり)

URL エンコードが推奨されるソリューションですが、あまり魅力的ではない代替手段もあります。

ISO-8859-1 に変換 (Windows)のみ)

Windows では、UTF-8 ファイル名を使用できますが、非 ASCII 文字は PHP の外部では正しく表示されないことに注意してください。これに対処するには、ファイルシステム関数で使用する前に、utf8_decode を使用してファイル名を ISO-8859-1 に変換します。

ISO-8859-1 文字に制限します

または、次のようにします。ファイル名を ISO-8859-1 で表現できる文字に制限します。ファイル名を UTF-8 と ISO-8859-1 の間で変換するには、utf8_decode と utf8_encode を使用します。

ただし、これらの代替方法には次の注意事項があります。

  • ファイルシステム関数は、無効な Windows に一致するバイトを処理できません。 ISO-8859-1.
  • Windows で使用されるファイルシステム文字英語以外のロケールでは ISO-8859-1 以外のエンコーディングを使用するため、より複雑な変換が必要です。

以上がPHP のファイルシステム関数で UTF-8 ファイル名を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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