mysql:13210
From: "Hiro Yoshioka" <"Hiro Yoshioka" <hyoshiok@xxxxxxxxxx>>
Date: Thu, 3 Aug 2006 22:45:55 +0900
Subject: [mysql 13210] Re: character setの追加
よしおかです。 お騒がせしております。 Index.xmlで追加した定義のid番号(今回の例では、99と100)に 対応する番号をctype-cp51932.cで変更しわすれていました。 $ diff -u strings/ctype-cp51932.c~ strings/ctype-cp51932.c --- strings/ctype-cp51932.c~ 2006-08-02 16:35:19.610169176 +0900 +++ strings/ctype-cp51932.c 2006-08-03 21:59:42.940496728 +0900 @@ -8478,7 +8478,7 @@ CHARSET_INFO my_charset_cp51932_japanese_ci= { - 97,0,0, /* number */ + 99,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ "cp51932", /* cs name */ "cp51932_japanese_ci", /* name */ @@ -8499,7 +8499,7 @@ 1, /* caseup_multiply */ 1, /* casedn_multiply */ 1, /* mbminlen */ - 3, /* mbmaxlen */ + 2, /* mbmaxlen */ 0, /* min_sort_char */ 255, /* max_sort_char */ ' ', /* pad_char */ @@ -8511,7 +8511,7 @@ CHARSET_INFO my_charset_cp51932_bin= { - 98,0,0, /* number */ + 100,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ "cp51932", /* cs name */ "cp51932_bin", /* name */ @@ -8532,7 +8532,7 @@ 1, /* caseup_multiply */ 1, /* casedn_multiply */ 1, /* mbminlen */ - 3, /* mbmaxlen */ + 2, /* mbmaxlen */ 0, /* min_sort_char */ 255, /* max_sort_char */ ' ', /* pad_char */ 実行結果: mysql> show character set like '%cp%'; +---------+-----------------------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+-----------------------------------+---------------------+--------+ | cp850 | DOS West European | cp850_general_ci | 1 | | cp1250 | Windows Central European | cp1250_general_ci | 1 | | cp866 | DOS Russian | cp866_general_ci | 1 | | cp852 | DOS Central European | cp852_general_ci | 1 | | cp1251 | Windows Cyrillic | cp1251_general_ci | 1 | | cp1256 | Windows Arabic | cp1256_general_ci | 1 | | cp1257 | Windows Baltic | cp1257_general_ci | 1 | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | | cp51932 | EUC encoding for Windows Japanese | cp51932_japanese_ci | 2 | +---------+-----------------------------------+---------------------+--------+ 9 rows in set (0.01 sec) てな感じですかね。 どうもありがとうございました。 よ -- Hiro Yoshioka CTO/Miracle Linux Corporation http://blog.miraclelinux.com/yume/ On 8/3/06, Hiro Yoshioka <hyoshiok@xxxxxxxxxx> wrote: > 御世話になります。 > > 何も考えずにadd_compiled_collationで追加しています。 > > $ diff -u mysys/charset-def.c~ mysys/charset-def.c > --- mysys/charset-def.c~ 2005-12-22 04:39:55.000000000 +0900 > +++ mysys/charset-def.c 2006-08-02 17:20:43.696045176 +0900 > @@ -95,6 +95,11 @@ > add_compiled_collation(&my_charset_cp932_bin); > #endif > > +#ifdef HAVE_CHARSET_cp51932 > + add_compiled_collation(&my_charset_cp51932_japanese_ci); > + add_compiled_collation(&my_charset_cp51932_bin); > +#endif > + > #ifdef HAVE_CHARSET_latin2 > add_compiled_collation(&my_charset_latin2_czech_ci); > #endif > > よ > > On 8/3/06, Shuichi Tamagawa <tamagawa@xxxxxxxxxx> wrote: > > 玉川です。 > > > > mysys/charset-def.c あたりなどどうでしょうか。 > > > > 先ほどのメールでは書き忘れましたが、実はマニュアルに載っている > > 内容は必ずしも十分ではなく、不足分をコメント欄に書いてありますので > > こちらも参考にしていただければと思います。 > > > > -- > > Shuichi Tamagawa > > > > > > > -----Original Message----- > > > From: Hiro Yoshioka [mailto:hyoshiok@xxxxxxxxxx] > > > Sent: Thursday, August 03, 2006 7:40 PM > > > To: ml@xxxxxxxxxx > > > Subject: [mysql 13207] Re: character setの追加 > > > > > > On 8/3/06, Shuichi Tamagawa <tamagawa@xxxxxxxxxx> wrote: > > > > 玉川です。 > > > > > > 御世話になります。 > > > 早速のリプライありがとうございます。 > > > 大変助かります。 > > > > > > > キャラクターセットの追加について、基本的な流れとしては > > > > マニュアルにこんなページがあります(あまり知られていませんが)。 > > > > > > > > http://dev.mysql.com/doc/refman/5.0/en/adding-character-set.html > > > > http://dev.mysql.com/doc/refman/4.1/en/adding-character-set.html > > > > > > > > こちらを参考にしてみて下さい。 > > > > > > おお、参考になります。 > > > > > > しかし、 > > > mysql> show character set; > > > で追加した文字コードが出てこないということは > > > mysqldあたりにちゃんと組み込まれていない > > > という感じなんでしょうか? > > > > > > strings mysqld|grep cp51932 > > > とかして実際に組み込まれているのを > > > 確認してみたりしています。 > > > > > > BUILD/autorun.sh > > > で、m4あたりからのconfigure fileやMakefileの > > > 生成は成功していて、configureやmakeも特に問題は > > > なさそうです。 > > > > > > Index.xmlがトリッキーかと思ったのですが、 > > > $ diff -u sql/share/charsets/Index.xml.orig > > > sql/share/charsets/Index.xml > > > --- sql/share/charsets/Index.xml.orig 2005-12-22 > > > 04:50:18.000000000 +0900 > > > +++ sql/share/charsets/Index.xml 2006-08-03 > > > 12:59:38.874663512 +0900 > > > @@ -1,6 +1,6 @@ > > > <?xml version='1.0' encoding="utf-8"?> > > > > > > -<charsets max-id="98"> > > > +<charsets max-id="100"> > > > > > > <copyright> > > > Copyright (C) 2003 MySQL AB > > > @@ -589,5 +589,19 @@ > > > </collation> > > > </charset> > > > > > > +<charset name="cp51932"> > > > + <family>Japanese</family> > > > + <description>EUC encoding for Windows Japanese</description> > > > + <alias>cp51932</alias> > > > + <collation name="cp51932_japanese_ci" id="99" order="Japanese"> > > > + <flag>primary</flag> > > > + <flag>compiled</flag> > > > + </collation> > > > + <collation name="cp51932_bin" id="100" order="Japanese"> > > > + <flag>binary</flag> > > > + <flag>compiled</flag> > > > + </collation> > > > +</charset> > > > + > > > </charsets> > > > > > > と言う感じです。 > > > > > > よ > > > > > > > > > > > > > > -- > > > > Shuichi Tamagawa > > > > > > > > > -----Original Message----- > > > > > From: Hiro Yoshioka [mailto:hyoshiok@xxxxxxxxxx] > > > > > Sent: Thursday, August 03, 2006 5:53 PM > > > > > To: ml@xxxxxxxxxx > > > > > Subject: [mysql 13205] character setの追加 > > > > > > > > > > よしおかと申します。 > > > > > > > > > > MySQLの実装の質問はここでよろしいのでしょうか? > > > > > 別に適切な場所がありましたら、お手数ですが、教えてください。 > > > > > (本家の英語のメーリングリストでもいいですが) > > > > > > > > > > 質問というのは、デフォルトでサポートされているエンコーディングを > > > > > 拡張しようと考えています。具体的には cp51932というエンコーディングを > > > > > 実装しようとしています。(EUC的なエンコーディングでcp932のレパートリ > > > > > なんですが、eucjpmsと違い補助漢字をサポートしない) > > > > > http://legacy-encoding.sourceforge.jp/wiki/ > > > > > > > > > > で、ごりごりソースをハックしております。基本的な流れとして > > > > > > > > > > eucjpmsを参考に、ctype-cp51932.c みたいなファイルを作成し、 > > > > > そこに各種ルーチンをとじこめる。 > > > > > character_sets.m4 にコンパイルルールを追加する。 > > > > > INSTALL-SOURCEを良く読む。 > > > > > BUILD/autorun.sh でaclocal;autoheader ...相当のことをする > > > > > ./configure --prefix=/usr/local/mysql --with-charset=utf8 > > > > > --with-extra-charsets=complex;date > > > > > make > > > > > make install > > > > > で > > > > > mysql> show character set; > > > > > で追加したキャラクタセットがでてくればめでたしめでたしなんですが > > > > > どうもうまく出てきません。 > > > > > > > > > > なにか根本的に勘違いをしていますでしょうか? > > > > > > > > > > よ > > > > > -- > > > > > http://d.hatena.ne.jp/hyoshiok/ > > > > > http://blog.miraclelinux.com/yume/ > > > > > mailto:hyoshiok@xxxxxxxxxx > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > http://d.hatena.ne.jp/hyoshiok/ > > > http://blog.miraclelinux.com/yume/ > > > mailto:hyoshiok@xxxxxxxxxx > > > > > > > > > > > > -- > http://d.hatena.ne.jp/hyoshiok/ > http://blog.miraclelinux.com/yume/ > mailto:hyoshiok@xxxxxxxxxx > -- http://d.hatena.ne.jp/hyoshiok/ http://blog.miraclelinux.com/yume/ mailto:hyoshiok@xxxxxxxxxx
13205 2006-08-03 17:53 ["Hiro Yoshioka" <hyo] character setの追加 13206 2006-08-03 18:55 ┗["Shuichi Tamagawa" <] 13207 2006-08-03 19:39 ┗["Hiro Yoshioka" <hyo] 13208 2006-08-03 20:56 ┗["Shuichi Tamagawa" <] 13209 2006-08-03 22:04 ┗["Hiro Yoshioka" <hyo] -> 13210 2006-08-03 22:45 ┗["Hiro Yoshioka" <hyo]