mysql:12432
From: Yasufumi Kinoshita <Yasufumi Kinoshita <kinoshita.yasufumi@xxxxxxxxxx>>
Date: Thu, 10 Nov 2005 20:15:18 +0900
Subject: [mysql 12432] Re: MySQL 日本語問題吐き出し緊急オフ会 -まとめ
木下です。 毎度、勉強になります。 議論をより具体的にするために Unicode(UCS)、日本語EUCの文字コードにおいて、 「〜」形状の文字について 現状のMySQLで行われている変換を一旦整理します。 <ucs2との対応> 1.eucjpms → ucs2 7E → 007E A1C1 → FF5E 8FA2B7 → FF5E 2.ujis → ucs2 7E → 007E A1C1 → 301C 8FA2B7 → 007E 3.ucs2 → eucjpms 007E → 7E 301C → 3F("?") ※c)案 では A1C1 になる FF5E → A1C1 4.ucs2 → ujis 007E → 7E 301C → A1C1 FF5E → 3F("?") ※c)案 では A1C1 になる <上記を踏まえたucs2を介したeucjpmsとujisの変換> A.eucjpms → ujis 7E → 7E A1C1 → 3F("?") ※c)案 では A1C1 になる 8FA2B7 → 3F("?") ※c)案 では A1C1 になる B. ujis → eucjpms 7E → 7E A1C1 → 3F("?") ※c)案 では A1C1 になる 8FA2B7 → 7E 長くてすいませんが、以上を踏まえて・・^^; MORIYAMA Masayuki wrote: > IANA の charset の定義によれば、 > > Shift_JIS = JIS X 0201:1997 (ラテン文字+片仮名) + JIS X 0208:1997 > EUC-JP = US ASCII + JIS X 0208-1990 + JIS X 0201 片仮名 + JIS X 0212-1990 > > となっています。 > > ここで UCS の変換で問題となってくるのは、次の点です。 > > (1) 0x00〜0x7F を JIS X 0201 ラテン文字とするのか、US-ASCII とするのか? > (2) JIS X 0212 を含めるのか否か? > > この辺の問題は、次のページに詳しく取り上げられています。 > http://euc.jp/i18n/ucsnote.ja.html#ascii > > (2) に関しては、CP932、eucjpms との関係を考えると、次のような問題が生 > じてきます。 > > 本来、IANA の定義に従った EUC-JP では、JIS X 0212 2区23点 TILDE を > US-ASCII の TILDE と区別するために、FULLWIDTH TILDE U+FF5E に対応付け > されます。 ということは、 A1C1 → FF5E 8FA2B7 → FF5E な eucjpms も A1C1 → 301C 8FA2B7 → 007E な ujis も どちらも IANA の EUC-JP 「ではない」ということになるのですよね?? (※IANA EUC-JP ではこうでしょうか? A1C1 → 301C 8FA2B7 → FF5E) > > しかし、cp932 などの UCS とのマッピングでは、JIS X 0208 1区33点 WAVE > DASH (〜) を UCS の FULLWIDTH TILDE U+FF5E と対応付けしているため、 > > cp932 → UCS → EUC-JP > > という変換を行うと、次のような変換がされてしまい、区点位置が保存されま > せん。 > > 〜 0x8160(cp932) → U+FF5E(UCS) → 0x8FA2B7(EUC-JP) > 0x8160(cp932) → U+FF5E(ucs2) → 0xA1C1(eucjpms) 0x3F ※c)案 では A1C1 (ujis) ということでMySQLではcp932での「〜」の句点位置はeucjpmsでは保存され、 c)案を適用するとujisでも保存されます。 > ですので、「Unicode -> JIS系文字コードへの変換」で、多対1 の変換を行っ > て、Unicode マッピングの違いを吸収できるのは、JIS X 0212 を含まない、 > cp932、sjis もしくは、U+FF5E FULLWIDTH TILDE が JIS X 0208 WAVE DASH > にマッピングされる eucjpms になります。 > > EUC-JP には、JIS X 0212 が含まれていて、U+FF5E FULLWIDTH を JIS X 0212 > の TILDE と対応付けすべきなので、残念ながら違いを吸収できません。 > > という事で、UCS 経由では ujis<->eucjpms という変換は、元々不可能な変換 > であると考えておく必要があります。 というわけでeucjpmsもujisも現在はIANAのEUC-JPではないとすると、 UCS 経由での ujis<->eucjpms は、JIS X 0212 2区23点 TILDE (8FA2B7) が 7E か A1C1 に揃えられてしまうことを念頭に使用すれば、 実用上の問題は大きくは無いのではないでしょうか? 確かに厳密なIANAのEUC-JPとの変換をUCS経由でサポートするのは難しいですが。。 ・・とここまで書きましたが、1文字だけ実用上拙い文字がありますね。 U+005C \ REVERSE SOLIDUS と U+FF3C \ FULLWIDTH REVERSE SOLIDUS です。 c)案では消えることはなくなりますが、 0xA1C0(ujis) → U+005C(ucs2) → 0x5C(eucjpms) 0x5C(eucjpms) → U+005C(ucs2) → 0xA1C0(ujis) と逆になってしまいます。。。 個人的には厳密な字形よりも実用性(他のRDBMSとのデータのやり取りなど)を重視して 「/」だけは 0xA1C0(ujis) ←→ U+005C(ucs2) ではなく 0xA1C0(ujis) ←→ U+FF3C(ucs2) と変更して欲しいのですが。(シフトJISも) ujis<->eucjpmsのためにも。 困るケースがあるでしょうか?? だんだん頭が痛くなってきました・・^^; -- 木下 靖文 e-mail: kinoshita.yasufumi@xxxxxxxxxx
12372 2005-11-07 18:16 ["Shuichi Tamagawa" <] MySQL 日本語問題吐き出し緊急オフ会 - まとめ 12373 2005-11-07 20:17 ┣[Yasufumi Kinoshita <] 12374 2005-11-07 21:21 ┃┗["Shuichi Tamagawa" <] 12391 2005-11-08 15:59 ┃ ┗[Yasufumi Kinoshita <] 12400 2005-11-08 20:50 ┃ ┗["Shuichi Tamagawa" <] 12402 2005-11-08 21:14 ┃ ┗[Hirofumi Fujiwara <f] 12412 2005-11-09 10:21 ┃ ┣[Hiro Yoshioka <hyosh] 12413 2005-11-09 10:28 ┃ ┃┗[<takeshi@xxxxxxxxxx>] 12414 2005-11-09 10:38 ┃ ┃ ┗[Hiro Yoshioka <hyosh] 12415 2005-11-09 11:56 ┃ ┃ ┗[<takeshi@xxxxxxxxxx>] 12416 2005-11-09 18:43 ┃ ┃ ┗[Hiro Yoshioka <hyosh] 12428 2005-11-10 14:12 ┃ ┃ ┗[<takeshi@xxxxxxxxxx>] 12520 2005-11-30 10:49 ┃ ┣[Tetsuro IKEDA <tetsu] 12525 2005-12-01 13:26 ┃ ┃┗[Hirofumi Fujiwara <f] 12598 2005-12-21 08:20 ┃ ┗[Tetsuro IKEDA <tetsu] メタデータに2バイト目が`(60)の漢字を使用する場合の不具合の件 12599 2005-12-21 12:43 ┃ ┗[Hirofumi Fujiwara <f] 12377 2005-11-07 23:55 ┣[Tadashi Jokagi <ml@x] 12399 2005-11-08 20:43 ┃┗["Shuichi Tamagawa" <] 12378 2005-11-08 00:11 ┣[<takeshi@xxxxxxxxxx>] 12380 2005-11-08 09:27 ┃┣["Shuichi Tamagawa" <] 12381 2005-11-08 09:36 ┃┃┗[<takeshi@xxxxxxxxxx>] 12403 2005-11-08 21:22 ┃┃ ┗[とみたまさひろ <tomm] 12405 2005-11-08 21:42 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 12397 2005-11-08 20:29 ┃┗["Shuichi Tamagawa" <] 12401 2005-11-08 21:11 ┃ ┗[とみたまさひろ <tomm] 12404 2005-11-08 21:27 ┃ ┣[Hirofumi Fujiwara <f] 12406 2005-11-08 21:52 ┃ ┣[<takeshi@xxxxxxxxxx>] 12417 2005-11-09 19:46 ┃ ┃┣[とみたまさひろ <tomm] 12418 2005-11-09 20:15 ┃ ┃┃┗[<takeshi@xxxxxxxxxx>] 12419 2005-11-10 11:13 ┃ ┃┃ ┗[Yasufumi Kinoshita <] 12425 2005-11-10 13:21 ┃ ┃┃ ┣[<takeshi@xxxxxxxxxx>] 12429 2005-11-10 14:47 ┃ ┃┃ ┗[MORIYAMA Masayuki <m] -> 12432 2005-11-10 20:15 ┃ ┃┃ ┗[Yasufumi Kinoshita <] 12433 2005-11-11 00:37 ┃ ┃┃ ┗[MORIYAMA Masayuki <m] 12435 2005-11-11 19:54 ┃ ┃┃ ┗[Yasufumi Kinoshita <] Re: MySQL 日本語問題吐き出し緊急オフ会 -まとめ 【c案整理】 12440 2005-11-12 11:48 ┃ ┃┃ ┣[MORIYAMA Masayuki <m] 12441 2005-11-12 12:52 ┃ ┃┃ ┃┗[MORIYAMA Masayuki <m] 12442 2005-11-13 14:06 ┃ ┃┃ ┣[MORIYAMA Masayuki <m] 12452 2005-11-14 11:20 ┃ ┃┃ ┃┗[MORIYAMA Masayuki <m] 12453 2005-11-14 12:51 ┃ ┃┃ ┃ ┣["Shuichi Tamagawa" <] 12462 2005-11-16 11:18 ┃ ┃┃ ┃ ┃┗[MORIYAMA Masayuki <m] 12464 2005-11-16 15:05 ┃ ┃┃ ┃ ┃ ┗["Shuichi Tamagawa" <] 12454 2005-11-14 15:27 ┃ ┃┃ ┃ ┗[Yasufumi Kinoshita <] Re: MySQL 日本語問題吐き出し緊急オフ会 -まとめ 【c案整理】皆様のご意見をお願いします。 12461 2005-11-16 03:10 ┃ ┃┃ ┃ ┣[MORIYAMA Masayuki <m] 12463 2005-11-16 15:00 ┃ ┃┃ ┃ ┗["Shuichi Tamagawa" <] 12466 2005-11-17 11:34 ┃ ┃┃ ┃ ┗[Yasufumi Kinoshita <] 12468 2005-11-17 15:46 ┃ ┃┃ ┃ ┗["Shuichi Tamagawa" <] 12470 2005-11-17 16:36 ┃ ┃┃ ┃ ┗[Yasufumi Kinoshita <] 12473 2005-11-17 17:48 ┃ ┃┃ ┃ ┗["Shuichi Tamagawa" <] 12448 2005-11-14 09:14 ┃ ┃┃ ┗["Shuichi Tamagawa" <] 12426 2005-11-10 13:57 ┃ ┃┗["Shuichi Tamagawa" <] 12427 2005-11-10 14:02 ┃ ┃ ┗[<takeshi@xxxxxxxxxx>] 12411 2005-11-09 09:15 ┃ ┗["Shuichi Tamagawa" <] 12475 2005-11-18 09:48 ┗["Shuichi Tamagawa" <] 12476 2005-11-18 09:54 ┣["Ryuichiro Munechika] 12613 2005-12-28 16:59 ┗["Shuichi Tamagawa" <]