Apache+PHP+MySQLで文字化け対策
PHPの文字化けについて
Apache+PHP+mysqlでxoopsを動かしたかったのだが、
文字化けでうまくいかず悩んでいた。
そこで、上のURLのページを参考に環境を構築してみた。
xoopsの日本語リソースファイルがEUCJPのため、そのままだと、どうにも文字化けしてうまくいかなかった・・・orz。
PHPと、MySQLと、xoopsの方で文字コードを揃えてやる必要がある。
1.xoopsの文字コードはEUCJP
内部で使う文字コードがEUCJPであることが決まる。
2.PHPで使う文字コードをEUCJPにする
上のURLに従い、(mbstring.internal_encoding)をEUCJP、
Windowsなので、(mbstring.http_output)をSJIS
に設定する。
http://tsuttayo.sytes.net/php/char_trn/ini_sam/ini_sample.php?os=win&int=euc&out=sjis
3.MySQLの内部エンコードをEUCJPにする。
WinMySQLAdminのmy.ini setupのタブで、色々とセッティングが書ける部分に以下の2行を追加する。
language=c:/mysql/share/japanese
defaultcharacterset=ujis
これをやることで、xoopsに投稿しても文字化けは起きない。
めでたしめでたし。