dポイントプレゼントキャンペーン実施中!

PHPスクリプトでローカルのディレクトリ名を
取得するプログラムを下記のとおり作成しました。

<?php
$list = scandir($rootdir);
foreach($list as $dirname){
print($dirname."<br>");
}
?>

取得結果は下記のとおりで
日本語が文字化けてしまいます。

010_�^�C_�ߋ��̗�
020_�^�C_�ߋ��̗��Q

mb_convert_encoding($dirname, "UTF-8", "auto");
を行えば文字化けせずに出力できるのですが、
他にwindows環境でこの文字化けに対する回避方法はないのでしょうか?

ご教授願います。

[環境]
WindwosXP Pro SP3
PHP Version 5.2.9-2

[表示ページの文字コード]
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

[php.iniのmbstring設定]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII
mbstring.substitute_character = none;
mbstring.func_overload = 0

以上よろしくお願いします。

A 回答 (1件)

そもそもが・・・・



httpレベルでデータを取得するのに、日本語のディレクトリや
ファイル名はを使用するという考え方がNG

すべて英数(および一部記号)に統一して運用しないかぎり、
一生トラブルに悩まされると思いますよ

この回答への補足

そう言われれば今までも悩まされた経験が…
ということはやはりmb_convert_encoding以外の
回避方法は無いのでしょうか?

重ね重ね質問になってしまい恐縮ですが
打開案としてはXMLファイル等の別ファイルに日本語データを保持し
読み込むといった方法が妥当でしょうか?

補足日時:2009/06/05 15:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!