x-IBM1399(EBCDIC)のEncoderについての調査
nioのEncoderをベースに調査してみた。
いちおうioの方も試しているけども・・・。
suspicious codepoint encode()========= 15 codepoints U+0000A U+00085 6F codepoints U+0003F U+0303F U+0FFE8 U+0FFE9 U+0FFEA U+0FFEB U+0FFEC U+0FFED U+0FFEE 0E60F10F codepoints U+07E48 U+07E66 0E5BFE0F codepoints U+0688D U+0688E 0E53B30F codepoints U+08346 U+0834A 0E446E0F codepoints U+02116 U+0F86F 0E51F10F codepoints U+067F5 U+06805 0E61B00F codepoints U+080FC U+08141 0E66C80F codepoints U+09839 U+0983D
上記は、canEncode(CharSequence)、encode(CharBuffer)などを使って調べてみた結果です。
一番左側に書いてるのはEncodeした結果の1399での16進バイト表現です。(SO/SI付き)
EBCDICで15はNEL(New Line)です。
U+0000A(LF)とU+00085(NEL)はEBCDICのNELにマッピングされるようです。
これはそれほど不思議ではない。EBCDICの変換ではよくあること。
6Fは?です。
U+0003Fは本物の?なので問題ない。
化けてしまったのは特殊文字の領域にいるこれらですね。
canEncodeが駄目なのか、encodeが駄目なのか、とにかくバグってそうです。
U+0303FはIdeographic Half Fill Space
U+0FFE8はHalfwidth Forms Light Vertical
U+0FFE9はHalfwidth Leftwards Arrow
U+0FFEAはHalfwidth Upwards Arrow
U+0FFEBはHalfwidth Rightwards Arrow
U+0FFECはHalfwidth Downwards Arrow
U+0FFEDはHalfwidth Black Square
U+0FFEEはHalfwidth White Circle
次に同じバイトにエンコードされたものたちがいます。
U+07E48「繈」とU+07E66「繦」
U+0688D「梍」とU+0688E「梎」
U+08346「荆」とU+0834A「荊」
U+02116「№」とU+0F86F「」 U+0F86Fはうまく表示できてないや。
U+067F5「柵」とU+06805「栅」
U+080FC「胼」とU+08141「腁」
U+09839「頹」とU+0983D「頽」
1つを除けば、似た漢字である。
これは別途、Decoderを調べる必要がありそうですな。