がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

日本語周り調査結果:PHP5.1.2

そのまんまでございますはい。
とりあえず関連しそうなのは
mbstring.encoding_translation
mbstring.internal_encoding
mbstring.http_input
の3つ(入力の場合)。で…丁寧に設定してももう一つ挙動が怪しい。
もし。もし貴方が「入力文字コードは自動的に以下略」とかいう万能薬信仰の信者なら。php.iniファイルで、
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.encoding_translation = On
の4つを正しく設定しきってください。下3つは変更の可否"PHP_INI_ALL"…なのですが、ini_setで設定しても反映されてないっぽかったです(多分、スクリプト実行前に処理しちゃってるんだろうなぁ感満載)。
ですので、かならずphp.iniを修正してください。
一つでも間違えるとちゃんと意図した通りには動いちゃくれません。


で。もうちょっと理性的に*1考えた場合。
人はCgiRequestクラスを作ろうっていう方向性に還るわけです。
通常の言語ですと「環境変数とか標準入力からデータとってきて切って張ってデコードして文字コード変えて」なのですが。PHPの場合は文字コードのみに気を払います。
まぁとりあえず
mb_language("Japanese");
で日本語だよんって明示してからスタートかなぁ、と。
ちなみにMWでは、CgiRequestクラスは実装、上述の日本語設定はcontrollerクラスのコンストラクタタイミングで設定いたします(笑

*1:或いは[悲観 | 現実 | 絶望]的に