EUC対応について#6

1149 letters | 548 views | コメントする

自体はどんどん複雑化する。
ユニコードの私用領域であるU+E000辺り以降が、SJISやJISへ変換出来ると言うことを、
ATOKの文字パレットで確認したが、JISの規格では使われていない、
0x7F21から0x927Eまでが割り当てられているようだ。
EUCでは、JISでの0x2121~0x7E7Eに0x8080を加えた、0xA1A1~0xFEFEを使っているので、
規格をはみ出して私用領域を割り当てようとすると桁があふれてしまうのだ。

さて、今回やりたいEUC変換は何を正解とするのかというと、
今まで真魚がやってきたSJIS経由EUC変換に対する完全上位互換で、
しかも今までは出来なかった補助漢字領域の変換を行うことだ。
その今までやってきたSJIS経由の変換は、
変換表によるマッピングではなく計算でやっているため、
一部の不正な文字も変換が行われている可能性がある。確認はしていない。
意図した変換ではない部分があっても、その部分の変換を再現するのが正解だろうか?
とりあえず、jconvert.pasでは、私用領域部分の変換はしていないように見える。

ちゃんと意図している0xA1A1~0xFEFEは、これまでの変換を正解としていいだろう。
0x00~0x007FはSJIS同様、ストレートに変換する。
SS2の半角カタカナもシンプルだ。
SS3は、資料が一つしかないし確認のしようもないのでそのまま使う。
もっといいSS3の資料が見つかれば、その時置き換えればいい。
あと残りの領域については、規格にないわけだから、
今まで変換できてたとしても意図した物ではないはずな訳で、
切り捨てて問題が起こるような文字は一切含まないはずだ。

ようやくこれでEUC対応は完成しそうな予感。

4324061394
4324061394

たぶん関連のある記事:

コメントは終了しています。