日本語エンコーディング各種まとめその1

2009/04/01バグパレード登録
(外字追加)
(画像だとやっぱり良くないかなと思ってテーブルにしてみた)
Unicode←→JIS/SJIS/EUCの癖をまとめてみた。基準はWindows。というか秀丸(汗)。秀丸は、きちんとしたEUC-JPだとかJISを解釈できるわけではないので、そこんところはバイナリエディタとか併用して。


Unicode
 
Shift_JISISO-2022
-JP
x-euc-jp
-linux
EUC-JPeucJP
-Open
windows
-31j
x-windows
-iso2022jp
CP50220
\ (005C)\ (005C)\ (005C)\ (005C)\ (005C)\ (005C)\ (005C)\ (005C)\ (005C)
¥ (00A5)\ (005C)
集約
¥ (005C)
JISX0201
\ (005C)
集約
\ (005C)
集約
\ (005C)
集約
\ (005C)
集約
¥ (005C)
JISX0201
¥ (005C)
JISX0201
~ (007E)~ (007E)~ (007E)~ (007E)~ (007E)~ (007E)~ (007E)~ (007E)~ (007E)
‾ (203E)~ (007E)
集約
‾ (007E)
JISX0201
~ (007E)
集約
~ (007E)
集約
~ (007E)
集約
~ (007E)
集約
‾ (007E)
JISX0201
‾ (007E)
JISX0201
, (FF0C), (8143), (2124), (A1A4), (A1A4), (A1A4), (8143), (2124), (2124)
¸ (00B8)未定義未定義未定義¸ (A2B1)
G3領域
¸ (A2B1)
G3領域
, (8143)
集約
, (2124)
集約
¸ (2231)
JISX0212
 ̄ (FFE3) ̄ (8150) ̄ (2131) ̄ (A1B1) ̄ (A1B1) ̄ (A1B1) ̄ (8150) ̄ (2131) ̄ (2131)
¯ (00AF)未定義未定義未定義¯ (A2B4)
G3領域
¯ (A2B4)
G3領域
 ̄ (8150)
集約
 ̄ (2131)
集約
¯ (2234)
JISX0212
μ (03BC)μ (83CA)μ (264C)μ (A6CC)μ (A6CC)μ (A6CC)μ (83CA)μ (264C)μ (264C)
µ (00B5)未定義未定義未定義未定義未定義μ (83CA)
集約
μ (264C)
集約
未定義
・ (30FB)・ (8145)・ (2126)・ (A1A6)・ (A1A6)・ (A1A6)・ (8145)・ (2126)・ (2126)
· (00B7)未定義未定義未定義未定義未定義・ (8145)
集約
・ (2126)
集約
未定義
≪ (226A)≪ (81E1)≪ (2263)≪ (A2E3)≪ (A2E3)≪ (A2E3)≪ (81E1)≪ (2263)≪ (2263)
« (00AB)未定義未定義未定義未定義未定義≪ (81E1)
集約
≪ (2263)
集約
未定義
≫ (226B)≫ (81E2)≫ (2264)≫ (A2E4)≫ (A2E4)≫ (A2E4)≫ (81E2)≫ (2264)≫ (2264)
» (00BB)未定義未定義未定義未定義未定義≫ (81E2)
集約
≫ (2264)
集約
未定義
¢ (00A2)¢ (8191)¢ (2171)¢ (A1F1)¢ (A1F1)¢ (A1F1)¢ (8191)
集約
未定義¢ (2171)
¢ (FFE0)未定義未定義未定義未定義未定義¢ (8191)¢ (2171)¢ (2171)
集約
£ (00A3)£ (8192)£ (2172)£ (A1F2)£ (A1F2)£ (A1F2)£ (8192)
集約
未定義£ (2172)
£ (FFE1)未定義未定義未定義未定義未定義£ (8192)£ (2172)£ (2172)
集約
¬ (00AC)¬ (81CA)¬ (2131)¬ (A2CC)¬ (A2CC)¬ (A2CC)¬ (81CA)
集約
未定義¬ (2131)
¬ (FFE2)未定義未定義未定義未定義未定義¬ (81CA)¬ (7C7B)
NEC独自
¬ (224C)
集約
— (2014)― (815C)― (213D)― (A1BD)― (A1BD)― (A1BD)未定義未定義未定義
― (2015)未定義未定義未定義未定義未定義― (815C)― (213D)― (213D)
‖ (2016)∥ (8161)∥ (2124)∥ (A1C2)∥ (A1C2)∥ (A1C2)未定義未定義∥ (2124)
∥ (2225)未定義未定義未定義未定義未定義∥ (8161)∥ (2124)∥ (2124)
集約
− (2212)- (817C)- (215D)- (A1DD)- (A1DD)- (A1DD)未定義未定義- (215D)
- (FF0D)未定義未定義未定義未定義未定義- (817C)- (215D)- (215D)
集約
〜 (301C)~ (8160)~ (215D)~ (A1C1)~ (A1C1)~ (A1C1)未定義未定義~ (2141)
~ (FF5E)未定義未定義未定義〜 (A2B7)
G3領域
〜 (A2B7)
G3領域
~ (8160)~ (2141)〜 (2237)
JISX0212
① (2460)未定義未定義未定義未定義① (ADA1)① (8740)① (2D21)① (2D21)
㍻ (337B)未定義未定義未定義未定義㍻ (ADDF)㍻ (877E)㍻ (2D5F)㍻ (2D21)
ⅰ (2170)未定義未定義未定義未定義ⅰ (F3F3)
G3領域
ⅰ (FA40)ⅰ (7C71)ⅰ (7321)
JISX0212
纊 (7E8A)未定義未定義未定義纊 (D4E3)
G3領域
纊 (D4E3)
G3領域
纊 (FA5C)纊 (7921)纊 (5463)
JISX0212
〝 (301D)未定義未定義未定義未定義〝 (ADE0)〝 (8780)〝 (2D60)未定義
〞 (301E)未定義未定義未定義未定義未定義未定義未定義〝 (2D60)
〟 (301F)未定義未定義未定義未定義〟 (ADE1)〟 (8781)〟 (2D61)〟 (2D61)
√ (221A)√ (81E3)√ (2265)√ (A2E5)√ (A2E5)√ (A2E5)√ (81E3)√ (2D75)
NEC独自
√ (2265)
∫ (222B)∫ (81E7)∫ (2269)∫ (A2E9)∫ (A2E9)∫ (A2E9)∫ (81E7)∫ (2D72)
NEC独自
∫ (2269)
⊥ (22A5)⊥ (81DB)⊥ (225D)⊥ (A2DD)⊥ (A2DD)⊥ (A2DD)⊥ (81DB)⊥ (2D76)
NEC独自
⊥ (225D)
 (E000)未定義未定義未定義未定義未定義 (F040)未定義 (7521)

集約:Unicodeから変換される場合はこの文字が割り当てられるが、Unicodeに変換する場合は別のUnicodeになる
JISX0201:JIS X 0201 JISローマ字に割り当てられる
JISX0212:JIS X 0212 JIS補助漢字に割り当てられる
G3領域:EUC-JPのG3(JIS X 0212)に割り当てられる
NEC独自:JIS側の同形文字ではなくNEC特殊文字NEC選定IBM拡張文字のコードが割り当てられる

こんな感じ。あと、最後のは外字。windows-31jは1880文字、CP50220は940文字ある。
こう並べるとなんかだいぶ変だよなぁ。偉い人の考えてることは判らん。

  • x-windows-iso2022jpがNEC特殊文字NEC選定IBM拡張文字を使うのはどういうことかなぁ。Windowsがそうやっているとも思えないんだけど(OSの文字変換については未調査)
  • x-euc-jp-linuxってのはもっとWindows寄りだと思ってたけど、Shift_JIS寄りだったのね
  • CP50220ってWindowsの拡張コードも使えるけど、301D〜301Fのコードの扱いが変じゃないかな
  • Windowsでまともに使えるJIS/EUC-JPがない感じ。

そういうことで、自前でエンコーディングを作るしかない気がしてきた。あくまでWindowsEUCとかJISとか使いたいとき専用だけど。