日本語エンコーディング各種まとめその1
2009/04/01バグパレード登録済
(外字追加)
(画像だとやっぱり良くないかなと思ってテーブルにしてみた)
Unicode←→JIS/SJIS/EUCの癖をまとめてみた。基準はWindows。というか秀丸(汗)。秀丸は、きちんとしたEUC-JPだとかJISを解釈できるわけではないので、そこんところはバイナリエディタとか併用して。
Unicode | Shift_JIS | ISO-2022 -JP | x-euc-jp -linux | EUC-JP | eucJP -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がない感じ。
そういうことで、自前でエンコーディングを作るしかない気がしてきた。あくまでWindowsでEUCとかJISとか使いたいとき専用だけど。