[PHP-users 35186] Re: UTF-8 での escapeshellcmd の文字化けについて
phpsenyo @ yahoo.co.jp
phpsenyo @ yahoo.co.jp
2010年 5月 4日 (火) 14:19:00 JST
小山様
お返事ありがとうございました。
> 以下のコードを UTF-8 で保存して実行すると、何が出力されますか?
>
> <?php
> $locale = setlocale(LC_ALL, 'ja_JP.UTF-8');
> var_dump($locale);
>
> $str = 'う';
> var_dump($str, bin2hex($str));
>
> $out = escapeshellcmd($str);
> var_dump($out, bin2hex($out));
以下の通りとなりました。
bool(false)
string(3) "う" string(6) "e38186"
string(2) "ぢ string(4) "e381"
$localeのvar_dumpがfalseということはsetlocaleが失敗しているということでし
ょうか。
見当違いかもしれませんが、ネットで調べて下記の設定を試してみたのですが、
一番上以外は全てfalseでした。
$locale = setlocale(LC_ALL, 'Japanese_Japan.20932'); → string(20)
"Japanese_Japan.20932"
$locale = setlocale(LC_ALL, 'Japanese_Japan.51932'); → bool(false)
$locale = setlocale(LC_ALL, 'ja_JP.eucJP'); → bool(false)
$locale = setlocale(LC_ALL, "ja_JP.SJIS"); → bool(false)
$locale = setlocale(LC_ALL, 'ja_JP.UTF-8'); → bool(false)
教えて君で誠に恐縮なのですが、アドバイスをいただければ幸いです。
--------------------------------------
GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
http://pr.mail.yahoo.co.jp/gyao/
PHP-users メーリングリストの案内