Apache+PHP+MySQLで文字化け対策

PHPの文字化けについて



ApachePHPmysqlxoopsを動かしたかったのだが、

文字化けでうまくいかず悩んでいた。



そこで、上の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に投稿しても文字化けは起きない。



めでたしめでたし。