mysql:173
From: "民斗 " <"民斗 " <tommy@xxxxxxxxxx>>
Date: Thu, 28 May 1998 18:22:46 +0900
Subject: [mysql 173] Re: MyODBCでトラブル
[Subject: [mysql 171] Re: MyODBCでトラブル] [Date: Thu, 28 May 1998 15:42:12 +0900 From:takeshi@xxxxxxxxxx] > kengo> ちゃんとやるんなら、USE_MBはまずいかもしれません。 > kengo> libmysql.cやm_ctype.hには、mysql-2.21.30のMultiByte対応の痕跡が > kengo> 見受けられます。ソースを*ある程度*共用しているのでしょう。 > いくつかまえ 本ML で民斗さんにお答え頂いたこと > (なぜ libmysqlclient.a に ctype_ujis がふくまれるの?) があるのですが、 > それの影響かなぁ、と思ってます > MySQL のソースの幾つかは myodbc でもそのまま流用していて、 > それが charset により変わっているのでしょうか。と予想 MyODBC は見たこと無いんでわかりませんが、mysql-3.21.30 の client/libmysql.c だったら、USE_MB は mysql_escape_string() の中で使っています。 mysql_escape_string() は文字列中の特殊文字をエスケープシーケンスに変換する ための関数です。(改行 → \n や \ → \\ とか…) SJIS は漢字コードの2バイト目に \ が含まれている文字があるので、 mysql_escape_string() がそれに対応するために USE_MB を見ています。 > (もしそうなら、charset ごとに myodbc も本来は作るべきなのかな。そんな大変な) MyODBC の libmysql.c も mysql-3.21.30 と同じだとすると、MyODBC が mysql_escape_string() を使っていた場合は、文字コードに依存することに なるでしょうね。 # この関数は MySQL を使ったプログラマの便利のために用意されているみたいで、 # mysql-3.21.30 内では mysqldump でしか使っていないようです。 -- 民斗 <tommy@xxxxxxxxxx>