[前][次][番号順一覧][スレッド一覧]

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" <]