2009年8月2日日曜日

MySQLに、CSEからODBC経由で接続したときに文字化け

MySQL Connector/ODBC 5.1 を使用してCSEから接続した場合、
データベースの文字コードがUTF-8ならば文字化けしてしまう。

データベース側の設定を変更できる状況でないなら、
通常なら以下の対処を行うが、5.1コネクタだと期待通り動作しない。

CSEより、エンコードの設定を確認
show variables like 'char%';

CSEから、エンコードを変更
SET character_set_client = sjis;
SET character_set_connection = sjis;
SET character_set_results = sjis;

もしくは、クライアント側でmy.cnfファイルの設定を行う。
[odbc]
default-character-set=sjis
※Read Options From my.cnf オプションを有効にする


5.1コネクタだと、上記いずれの対応でも解決しない、
MySQL Connector/ODBC 3.51を使用すれば、上記対応は全て有効だし、
そもそも3.51コネクタならば、ODBCデータソース設定画面の
接続オプションでCharacter setの変更も可能である。