Home > mysql > mysqlのパーサのわからないところ

mysqlのパーサのわからないところ

  • 2008-12-30 (火) 6:28
  • mysql
  • hatena count

ここんところ文字コードとmysqlの関係が頭から離れずにいろいろと調査中だったりします。

で。mysqlのパーサのコードを読んだりもしてるわけなのですがどうしてもわからないことが。

サーバサイドPrepareを使わないで、
character-set-clientが’sjis’でフィールドのキャラセットが’utf8′のときに
0×815f(\)が0×5c(\)ではいり
0×955c(表)が0xE8A1A8(表)
できちんと入ること。
SQLParse => utf8化
の順番であれば、0×955cのあとの’がエスケープされてエラーになりそうだし
utf8化 => SQLParse
の順番であれば、0×815f(=>0×5c)のあとの’がエスケープされてエラーになりそう。
でもエラーにならない。うーむ。ちなみにコード読んだ限りではParse後にutf8化してるように感じるけど・・・。
yaccがマルチバイトなencodingを認識してパースしてくれているんだろうか。ぐふう。

まぁはっきりいってコードの読みがまだまだ浅いのとyacc(bison)をちゃんと理解しないとわかるはずもないんだろうけど。

追記1: あ、おk。分かった。sql/sql_lex.ccのget_textでマルチバイトの処理やってた。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.geminium.com/chiba_blog/2008/12/30/36/trackback/
Listed below are links to weblogs that reference
mysqlのパーサのわからないところ from へぼへぼCTO日記
add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

Home > mysql > mysqlのパーサのわからないところ

Search
Feeds
Meta

Return to page top