日本語対応の件

Connector/Jの時に散々カッコ株(株)などの特殊な文字も含めて日本語を正しく扱えるようにするにはどうすべきかをやっていたわけですが,それをConnector/NETでもやらねばならぬというわけです.

Connector/NETを使う以上,MySQLクライアント側というのはWindowsなわけであり(Mono+C#を日本のSIerがやるとは今は思えない),Microsoftが言うところの"sjis"とはすなわちMySQLが言うところの"cp932"と中身は同じなので,Connector/NET側で"sjis"と指定された場合にサーバに"cp932"として格納あるいは取得してあげれば原則的にはそれだけで良いはずです.

で,実際いまどうなっているのかというと.C#側で"sjis"と指定するとConnector/NETは以下のようにMySQLに接続しに行きます.

10 Connect     root@localhost on test
10 Query       SHOW VARIABLES
10 Query       SHOW COLLATION
10 Query       SET NAMES sjis;SET character_set_results=NULL
10 Init DB     test

はい,"SET NAMES sjis"とやってますね.たぶんここを"cp932"とするように例のCharSetMap.csを変更する必要があるでしょう.

そこでConnector/NETの修正とコンパイルですよ・・・.いったいどーすりゃできるんだろう.