2004年11月20日

内部エンコード等

湧いて出る不具合、何とか解決。
やはり文字コードの入出力設定絡み。
メール処理の前に↓の2行を入れることで正常に。

mb_language("Japanese");

mb_internal_encoding("EUC");


簡単に調べてみた感じではPHP4.3.1以降では
明示的に文字コードを指定しなければならない場面があるようで、
ちょっと面倒だけどおまじないとして覚えるしかないかな。

mb_language()はmb_send_mail()のため。
指定しないとUTF-8になって、改行が化けてしまう。
mb_internal_encoding()はmb_encode_mimeheader()のため。
From:に全角文字を指定する時に使う。

なんだかんだで面倒くさいな。
php.iniの設定次第、でもあるのだけど、
php.iniの設定は以前とほとんど変わりないのに、
バージョン変えただけで明示的指定とは…
この辺り、PHPのまだ面倒なところかもしれないね。

0 コメント:

コメントを投稿