[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 メーリングリストの案内