[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にとりかかります。