[前][次][番号順一覧][スレッド一覧]

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>

[前][次][番号順一覧][スレッド一覧]