2010年5月 4日

[PHP-users 35186] Re:UTF-8 での escapeshellcmd の文字化けについて

小山様

お返事ありがとうございました。

> 以下のコードを 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 mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年5月 4日 14:19
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95515
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。