EUC-JPで書き込むとMySQLで文字化けする?

しばらく前から認識はしていたのだけど、サーバの仕様ということで放ってある問題がある。 携帯向けにShift_JISに変換して出力する、EUC-JPで書かれたスクリプトがあるのだが、それでMySQL5.1.11と今までのようにDBIを通じて書き込みを行うと、文字化けする、という問題だ。 しかし、CGI::Sessionを通じて同じデータベースの別テーブルに書き込んでいるほうは文字化けしないのだ。 漢字コードを指定するためには「SET NAMES ujis」というSQLを入れるといいらしいので、それをやってみたら、そこはうまくいった。 しかし、今度はもともと文字化けしていなかったほうが文字化けする。 データベースハンドルは同じものを使っているのだけど。 何がどうなんだろうねぇ。

普通に考えて、CGI::Sessionのほうは、漢字コードを変換してデータベースに書き込んでいるんだろう。 でも、どこでそうなってるのか、ソースを読もうとして挫折。 で、今に至ると。

Comments

comments powered by Disqus