mbregexの初期化について

php を使っていて mbstring 関連の挙動がおかしいと思ったら、私の環境では、デフォルトのエンコード(EUC-JP)とは違うエンコード(UTF-8)を使っていたためだった。

http://wiki.poyo.jp/read/PHP/tips/mbstring/caution_mbregex

php.ini は他のアプリの関係で変えられないので、対象のアプリのみ内部エンコーディングのデフォルト値を httpd.conf やコマンドライン引数で指定することにした。

httpd.conf の設定(/path/to/ ディレクトリにのみ適用):

<Directory /path/to/>
   php_value mbstring.internal_encoding UTF-8
</Directory>

コマンドラインの引数(-d オプション):

 $ php -d mbstring.internal_encoding="UTF-8" hoge.php