MySQL 4.1以降のバージョンでは文字化けが当たり前となりました。
わたしはMySQL4.0.xと4.1.xと5.0.xと5.1.xの4つのバージョンを利用しているのですが、4.0.xは3.23.xとほぼ同じに取り扱えます。4.1.xでも「SET NAMES utf8」のお呪いを挿入することで、文字化けは起こらなくなりました。
MySQL5.0.xのサーバは最近契約をしたのですが、どうしても文字化けが防げないでいます。
この記事を書いている時点でも文字化けが解消したわけではないのですが、これまでの試行錯誤を備忘録として書き留めておき、後日の参考にしたいと思います。
Apacheモジュールでmod_rewriteを使用していますので、htmlファイルは1枚も存在しないシステムのWebSiteです。
インタープリターにはPHPではなくPerlを使用しています。
文字コードはUTF-8を利用しています。
現時点ではここまでで、時間的な都合があり作業を止めてあります。予定ではこのサーバ上のシステムは6月中旬に稼動させられるはずでしたが、文字化け対策が思うようにはかどらず、作業がとまってしまいました。文字化けを除くシステムは別サーバで動作確認を完了しているので、時間的な無駄遣いが気になりだしました。
MySQLの書籍やネット上の情報は、これまでに試みた方法でほぼ文字化けは解消するように書かれているのですが、今回はそうも行かないようです。
7/9 2009追加
文字化けがあっけなく解決しました。
$dbh->do("SET NAMES utf8");をCGIのソースの中に何カ所か書き込んだところ、全ての文字化けが解消しました。これまでは$dbh->do("SET NAMES utf8");を最初に読み込ませていたのですが、ソースの途中で向こうとなるらしく、途中でも読み込ませるようにしました。
1ヶ月近くかかった文字化け問題がこうもあっさりと解決してしまうとは拍子抜けです。
mizunuma 7月 8th, 2009
Posted In: MySQL Server