[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-users:10229] Re: etch ORCA    	でのデータ移行
 
- To: orca-users@xxxxxxxxxxxxxx
 
- Subject: [orca-users:10229] Re: etch ORCA    	でのデータ移行
 
- From: kitagawa <srkb91270@xxxxxxxxxxxxxxxx>
 
- Date: Thu, 10 Jan 2008 13:13:54 +0900
 
結縁晃治 先生 武藤 健志 様 皆様  hskitagawaです。
 続けさせていただきます。基本的な原理は前回に説明したとおりです。どこから始めてもよいのですが、後が続けやすいので、ここはJISからはじめましょう。
1.JIS
 2バイトで漢字の他、全角記号、全角数字、全角ギリシア文字、ロシア文字等に対応させるものです。2バイト(xxyy)でxxが21-7Eの範囲で、yyも21-7Eの範囲です。つまり、2121、217E、7E21、7E7Eを頂点とする正方形内に位置する2バイト数の領域と言うことです。図にすればこんな感じです。
    2121 ------------------------------------------------------- 217E
     |                                                             |
     |                                                             |
     |                                                             |
     |            JIS全角記号,数字,第1水準,2水準漢字             |
     |                                                             |
     |                                                             |
     |                                                             |
    7E21 ------------------------------------------------------- 7E7E
 もうお分かりですね。第1、第2バイト共に「1バイト文字で使用されるコード」ですよね。だから、このままではコンピュータは1バイト文字と区別できないわけです。そこで、前回のとおり「2バイト文字(漢字)データの初めと終わりを特殊なコードではさむ」 
わけです。実際には漢字の始まりを示すのは ESC $ B (0x1B, 0x24, 0x42) で、漢字終了は ESC ( B (0x1B, 0x28, 0x42) と3文字コードです。ここで、ESC は前回述べましたように、1バイト文字でも「制御コード」ですので、通常の文字や記号と間違うことがないところがミソです。これでコンピュータに「ここから漢字だぞ」あるいは「ここで漢字は終わりぢゃ」と分からせることができます。
2.EUCJP
 2バイトで漢字の他、全角記号、全角数字、全角ギリシア文字、ロシア文字等に対応させるものです。2バイト(xxyy)でxxがA1-FEの範囲で、yyもA1-FEの範囲です。つまり、A1A1、A1FE、FEA1、FEFEを頂点とする正方形内に位置する2バイト数の領域と言うことです。図にすればこんな感じです。
    A1A1 ------------------------------------------------------- A1FE
     |                                                             |
     |                                                             |
     |                                                             |
     |            EUCJP全角記号,数字,第1水準,2水準漢字           |
     |                                                             |
     |                                                             |
     |                                                             |
    FEA1 ------------------------------------------------------- FEFE
 フーンと感心しないでよく見てください。FE - A1 = 5D また 7E - 21 = 5D ですから2つの正方形は合同なんです。実は、EUCJPはJISを平行移動しただけなんです。どこへ?見ればわかるように「1バイト文字で使用されないコードの領域に」です。かしこーーい!どうしてJISをそこへ持って行かなかったんだい?って、もう半角カナも使ってることだし、色々と歴史的事情もあったようなので...へへへ。
 *** 実は、EUCJPにも「半角カナ領域」があるんです。8EA0-8EDFなんですけどね。私も最近知ったばかりです。昔はこんなんなかったんですけど。使ってもよろしいが、全角と半角の併用になるので、おすすめできません。
 ここで、JISとEUCJPの変換方法を。JISとEUCJPは1対1に対応します。(この対応が大事です。これが保証されないと相互変換が成立しなくなります。)
 (1) JIS --> EUCJP :  EUCJP = JIS + 0x8080
 (2) EUCJP --> JIS :  EUCJP = JIS - 0x8080
 次は、いよいよSJISにとりかかります。