PHPにて、コマンドラインを使いたかった。引数をエスケープするのに escapeshellarg() を使ったのだけど、日本語のところが剥ぎ取られてしまった、英数字(それと少しの記号文字)しか残らない。調べてみると、PHP のロケールの設定に合わない文字は通さないという事の様だ。 PHP: escapeshellarg - Manual PHPのロケール それで PHPのロケールの設定なんだけど、 setlocale(LC_CTYPE, 0) で訊いてみたら「C」だった。(LC_CTYPE についてはマニュアル参照、escapeshellarg() は文字の変換としてこの定数が対応する模様) で、どうしようか。 PHPプログラム中で「setlocale(LC_CTYPE, 'ja_JP.UTF-8')」と書くのかな、というかこの「C」の値ってどっから来たんだっけ。 アパッチの環境変数 LA