複数文字コードを使ったテーブルへのINSERTの件 再考
WikiにIntroducerを使って以下のようにC/Jは実行すべきと書いていたけれども,
INSERT INTO t1 (c1, c2) VALUES ('ああ', _utf8 'ああ');
これは間違いで,こうでなければ成らない.
INSERT INTO t1 (c1, c2) VALUES ('ああ', _utf8 '縺ゅ≠');
なぜかというと,そりゃutf8文字列をこの例だとsjisで表示してるわけですから.見かけ上文字化けしない方がおかしい.
うっかりC/J 5.1にバグしこんじゃったかと心配してチェックしたけどC/J 5.1自体は特に問題なし,しっかり㈱も扱えてましたとさ.Wikiは修正しときました.
上記は以下を実行しているのと同じ.
INSERT INTO t1 (c1, c2) VALUES ('ああ', _utf8 x'E38182E38182');
ちなみにラテン文字だと文字化けしないのでこんな感じ.
INSERT INTO t1 (c1, c2) VALUES ('aaa', _utf8 'aaa');