サポートしていない:名前変更は、マルチバイト文字を
rename('php109.tmp','test.jpg');
それは罰金と作業です。
が、私はにそれを変更した場合:
rename('php109.tmp','中文.jpg');
それは
報告します "そのようなファイルやディレクトリを..."。
しかし、マルチバイト文字をデータベースに書き込むことができる場合は、名前が変更されたときに、なぜそれが失敗し、読み出すことができますか?
サポートしていない:名前変更は、マルチバイト文字を
rename('php109.tmp','test.jpg');
それは罰金と作業です。
が、私はにそれを変更した場合:
rename('php109.tmp','中文.jpg');
それは
報告します "そのようなファイルやディレクトリを..."。
しかし、マルチバイト文字をデータベースに書き込むことができる場合は、名前が変更されたときに、なぜそれが失敗し、読み出すことができますか?
mbstringはこの特定の問題とは関係がありません。ここでの問題は、.phpファイルのエンコーディングに依存していると思います。
コードエディタでファイルのエンコーディングをUTF-8(BOMなし)に変更してみてください。
ですが、ファイルはすでにutf8でエンコードされています。 – omg
ロケールが正しく設定されていることを確認するために、setlocale(LC_ALL, array("es_ES.utf-8","[email protected]",'es_ES'));
またはあなたの国コードが何であるかを試しましたか?
この呼び出しで 'utf-8'が返されない場合は、失敗したことを意味し、現在のロケールを返します。
このサンプルは、言語コードページを検索して置き換える必要があります。私はベローズコードをテストし、Windowsで動作するアラビア語/ペルシア語の名前:
$newname = iconv("utf-8", "cp1256","گچپژ");
echo rename("1.txt", $newname);
オペレーティングシステムまたはファイルシステムでマルチバイトのファイル名がサポートされていますか? – garrow
はい、 ここに詳しい情報があります: ウェブページから投稿すると処理されます。 ページエンコーディングはutf8 です。エンコーディングはutf8です。 と私は文字列をダンプして、それもまたutf8であることを確認しました – omg
あなたはどのOSを使用していますか?私はこれをFreeBSD 4.11、Debian 5.0、およびOS X 10.6.2でエラーなしでテストしました。 何らかの種類のシステムコールトレース機能を備えたOSを使用している場合は、有効にすることができますか? –