2016年12月4日

主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い

まとめました。


nkfとiconvの差異
https://nathancorvussolis.blogspot.jp/2015/05/difference-between-nkf-and-iconv.html

Pythonとiconvの差異
https://nathancorvussolis.blogspot.jp/2016/11/difference-between-python-and-iconv.html

JavaのShift_JIS-2004については下記のブログを引用させていただきました。
iconv、Java、PythonのJISX0213 - yuan-jiu blog
http://yuan-jiu.asablo.jp/blog/2013/05/11/6807043


バージョン

libiconv 1.14
nkf 2.1.4
Python 3.4.5
Java 1.7.0_21


EUC-JIS-2004


EUC-JIS-2004iconvnkfPython
0xA1B1  ̄U+FFE3 ‾U+203E  ̄U+FFE3
0xA1EF ¥U+FFE5 ¥U+00A5¥U+FFE5
0xA1BD —U+2014 —U+2014 ―U+2015
0xA2D6 ⦅U+FF5F ⦅U+FF5F⦅U+2985
0xA2D7 ⦆U+FF60 ⦆U+FF60 ⦆U+2986

http://x0213.org/codetable/euc-jis-2004-std.txt より抜粋
0xA1B1  U+203E  # OVERLINE  Windows: U+FFE3
0xA1BD  U+2014  # EM DASH  Windows: U+2015
0xA1EF  U+00A5  # YEN SIGN  Windows: U+FFE5
0xA2D6  U+FF5F  # FULLWIDTH LEFT WHITE PARENTHESIS  [2000]  [Unicode3.2]
0xA2D7  U+FF60  # FULLWIDTH RIGHT WHITE PARENTHESIS  [2000]  [Unicode3.2]

EUC-JIS-2004 については FULLWIDTH かどうかの違いくらいしかないので、それほど問題はなさそうです。
Python の 0xA2D6 → U+2985 と 0xA2D7 → U+2986 はちょっとどうなの?と思ってしまいますが。


Shift_JIS-2004


Shift_JIS-2004iconvnkfPythonJava
0x5C ¥U+00A5 \U+005C ¥U+00A5 \U+005C
0x7E ‾U+203E ~U+007E ‾U+203E ~U+007E
0x8150  ̄U+FFE3 ‾U+203E  ̄U+FFE3  ̄U+FFE3
0x815C —U+2014 —U+2014 ―U+2015 —U+2014
0x815F \U+FF3C \U+FF3C \U+005C \U+FF3C
0x818F ¥U+FFE5 ¥U+00A5 ¥U+FFE5 ¥U+FFE5
0x81B0 ~U+FF5E ~U+FF5E ~U+007E ~U+FF5E
0x81D4 ⦅U+FF5F ⦅U+FF5F ⦅U+2985 ⦅U+FF5F
0x81D5 ⦆U+FF60 ⦆U+FF60 ⦆U+2986 ⦆U+FF60

http://x0213.org/codetable/sjis-0213-2004-std.txt より抜粋
0x5C    U+00A5  # YEN SIGN
0x7E    U+203E  # OVERLINE
0x8150  U+FFE3  # FULLWIDTH MACRON
0x815C  U+2014  # EM DASH  Windows: U+2015
0x815F  U+005C  # REVERSE SOLIDUS  Fullwidth: U+FF3C
0x818F  U+FFE5  # FULLWIDTH YEN SIGN
0x81B0  U+007E  # TILDE  [2000]  Fullwidth: U+FF5E
0x81D4  U+FF5F  # FULLWIDTH LEFT WHITE PARENTHESIS  [2000]  [Unicode3.2]
0x81D5  U+FF60  # FULLWIDTH RIGHT WHITE PARENTHESIS  [2000]  [Unicode3.2]

こうして見てみると、Python の 0x815F → U+005C がはまりポイントになりそうですね。

0 件のコメント:

コメントを投稿