PHP - アップロード中の UTF-8 ファイル名の処理
UTF-8 ファイル名を含むアップロードを処理する場合、文字が正確に保存されていること。これは、発音記号や非ラテン文字を使用するベトナム語などの言語に特に関係します。
PHP では、ファイルシステム関数がネイティブで UTF-8 ファイル名をサポートしていない可能性があるため、UTF-8 ファイル名の処理には特別な考慮が必要です。提供されているコード例に示されているように、
<code class="php"><?php if(isset($_POST["submit"])) { if($_FILES["upload"]["error"] > 0 ) echo "FILE ERROR!"; else { $base_dir = "D:/"; $fn = $_FILES["upload"]["name"]; $fn2 = $base_dir . $fn; move_uploaded_file($_FILES["upload"]["tmp_name"], $fn2); } } ?></code>
このコードは、ベトナム語の名前が付いたファイル「Tên Tệp Tiếng Việt.JPG」をアップロードしようとします。ただし、アップロードすると、文字処理が正しくないため、コンピュータ上のファイル名は「Tãn Tệp Tiếng Việt.JPG」と表示されます。
この問題を解決するには、次の手順を実行します。 PHP ファイルシステム関数でファイル名を処理する前に、ファイル名をシステムのコード ページに変換する必要があります。コード ページは、オペレーティング システムで使用可能な文字を定義する設定です。
特定のオペレーティング システムとそのデフォルト コード ページに応じて、2 つの解決策が考えられます。
オプション1: ファイル名の文字を制限する
これには、ファイル名の文字をシステム コード ページでサポートされている文字に制限することが含まれます。この場合、通常は ASCII (437) です。これにより、ファイル名は正確に保持されますが、特定のベトナム語文字の使用が制限されます。
オプション 2: システム コード ページの変更
これには、システム コードを変更する必要があります。コントロール パネルの地域設定を介してページをベトナム語 (1258) に変更します。変更が完了したら、ファイル名を CP1258 に変換します。これにより、PHP ファイルシステム関数で適切に処理できるようになります。
<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir . $fn);</code>
これらのアプローチのいずれかを選択することで、ベトナム語 UTF-8 ファイル名が正しく処理されるようにすることができます。 PHP でのアップロード中。
以上がベトナム語のアップロードのために PHP で UTF-8 ファイル名を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。