mysql:13348
From: Mamiya Masataka <Mamiya Masataka <xc8m-mmy@xxxxxxxxxx>>
Date: Fri, 15 Sep 2006 08:24:18 +0900
Subject: [mysql 13348] 2バイト文字の文字コード
いつも貴重な情報をありがとうございます。 茨城の間宮と申します。 「データに「十」でエラー」の一連の情報を読ませていただき、 同じスレッドに追加で質問してしまったのはまずかったかなと、 別スレッドで改めて情報をいただければと思いメールしました。 どうぞよろしくお願いします。 2バイト文字は上位1バイト下位1バイトの組み合わせで 文字コードが決められています。 そこに1バイト文字も混在するようになっていますよね。 11あAA ってなかんじでしょうか。 ところで、2バイト文字の下位1バイトと次の2バイト文字の上位1バイトで、 全く別の文字のコードになってしまうことありますよね? このあたりを mySQL ではどのように解決しているのでしょうか? スクリプトは EUC で書く方がよいと言う情報をよく見ますが、 基本的に EUC はこの問題を解決した文字コードだからでしょうか? 文字コードの問題は、様々な文字コードがあり、 私自身の現在の置かれた環境で一番慣れている文字コードもありと、 ここずっとどのような問題が起こりうるのかなと考えていました。 現実的な問題として、次のような問題が発生しました。 香 = 8D81 枕( = 968D8169 となってしまい、枕の後ろ2バイトと(の前2バイトが香と同じ文字コードです。 mySQL で LIKE %香% をすると 「香」と「枕(」に合致してしまいます。 これを防ぐよい方法はあるのでしょうか? 皆様のお知恵をお借りしたいと思います。 私の環境は、 Windows XP mySQL 4.0.18 Apache 2.0.59 perl 5.8.6 となっています。 どうぞよろしくお願いいたします。 -- Mamiya masataka from IBARAKI JAPAN 0297-58-6313 090-4430-2918 mamiya@xxxxxxxxxx masataka-orange@xxxxxxxxxx つくばみらい市エキストラの会 http://www.rinzo2.jp/~njkmmy/w_extra/index.html
-> 13348 2006-09-15 08:24 [Mamiya Masataka <xc8] 2バイト文字の文字コード 13349 2006-09-15 11:22 ┣[<kiwah@xxxxxxxxxx> ] 13351 2006-09-15 12:14 ┃┗[Mamiya Masataka <xc8] 13350 2006-09-15 11:41 ┗[早間 <hayama@xxxxxxx] 13352 2006-09-15 13:00 ┗[Mitsuhiro KIZU <kizu]