読者です 読者をやめる 読者になる 読者になる

MacJapanese と CP10001

Char

おそらくそれなりに需要があると思われる MacintoshSJIS (MacJapanese) ですが、WindowsSJIS (CP932) とは結構違います。しかもただ異なるだけでなく、Unicode 間での変換においては、56 件の多対一変換が必要となり、一対一変換を前提としたプログラムでは大きなコストがかかってしまいます。
ところで、Windows には「Macintosh 日本語」と名づけられた CP10001 というエンコーディングがあります。CP10001 ならば Win32API を叩けば簡単に使えるので、これが MacJapanese の代わりになるならば非常に便利ですが、実際のところどの程度つかえるのか調べて見ました。
当然のことながら、多対一変換は一切含まれていません。また、円記号・バックスラッシュや、波ダッシュ等では互いに異なっています。さらに、もともと Windows には存在しなかった文字は CP10001 では拾えていないように見えます。Macintosh と Windows の文字コードの違い を眺めるとイメージがわきやすいでしょうか。
以下は多対一変換を除いた相違点の表です。

SJIS MacJapanese CP10001
0x5C U+00A5 U+005C
0x7F - U+007F
0x80 U+0080 U+005C
0x8145 U+30FB -
0x815C U+2014 U+2015
0x8160 U+301C U+FF5E
0x8161 U+2016 U+2225
0x817C U+2212 U+FF0D
0x8191 U+00A2 U+FFE0
0x8192 U+00A3 U+FFE1
0x81CA U+00AC U+FFE2
0x855E U+2474 -
0x855F U+2475 -
0x8560 U+2476 -
0x8561 U+2477 -
0x8562 U+2478 -
0x8563 U+2479 -
0x8564 U+247A -
0x8565 U+247B -
0x8566 U+247C -
0x8567 U+247D -
0x8568 U+247E -
0x8569 U+247F -
0x856A U+2480 -
0x856B U+2481 -
0x856C U+2482 -
0x856D U+2483 -
0x856E U+2484 -
0x856F U+2485 -
0x8570 U+2486 -
0x8571 U+2487 -
0x857C U+2776 -
0x857D U+2777 -
0x857E U+2778 -
0x8580 U+2779 -
0x8581 U+277A -
0x8582 U+277B -
0x8583 U+277C -
0x8584 U+277D -
0x8585 U+277E -
0x8592 U+2488 -
0x8593 U+2489 -
0x8594 U+248A -
0x8595 U+248B -
0x8596 U+248C -
0x8597 U+248D -
0x8598 U+248E -
0x8599 U+248F -
0x859A U+2490 -
0x85A9 U+216A -
0x85AA U+216B -
0x85BD U+217A -
0x85BE U+217B -
0x85DB U+249C -
0x85DC U+249D -
0x85DD U+249E -
0x85DE U+249F -
0x85DF U+24A0 -
0x85E0 U+24A1 -
0x85E1 U+24A2 -
0x85E2 U+24A3 -
0x85E3 U+24A4 -
0x85E4 U+24A5 -
0x85E5 U+24A6 -
0x85E6 U+24A7 -
0x85E7 U+24A8 -
0x85E8 U+24A9 -
0x85E9 U+24AA -
0x85EA U+24AB -
0x85EB U+24AC -
0x85EC U+24AD -
0x85ED U+24AE -
0x85EE U+24AF -
0x85EF U+24B0 -
0x85F0 U+24B1 -
0x85F1 U+24B2 -
0x85F2 U+24B3 -
0x85F3 U+24B4 -
0x85F4 U+24B5 -
0x8641 U+339F -
0x8643 U+33A0 -
0x8644 U+33A4 -
0x8647 U+33A5 -
0x8649 U+33A2 -
0x864E U+3396 -
0x864F U+3397 -
0x8650 U+2113 -
0x8651 U+3398 -
0x8652 U+33B3 -
0x8653 U+33B2 -
0x8654 U+33B1 -
0x8655 U+33B0 -
0x8656 U+2109 -
0x8657 U+33D4 -
0x8658 U+33CB -
0x8659 U+3390 -
0x865A U+3385 -
0x865B U+3386 -
0x865C U+3387 -
0x869F U+2664 -
0x86A0 U+2667 -
0x86A1 U+2661 -
0x86A2 U+2662 -
0x86A3 U+2660 -
0x86A4 U+2663 -
0x86A5 U+2665 -
0x86A6 U+2666 -
0x86B3 U+3020 -
0x86B4 U+260E -
0x86B5 U+3004 -
0x86C7 U+261E -
0x86C8 U+261C -
0x86C9 U+261D -
0x86CA U+261F -
0x86CB U+21C6 -
0x86CC U+21C4 -
0x86CD U+21C5 -
0x86CF U+21E8 -
0x86D0 U+21E6 -
0x86D1 U+21E7 -
0x86D2 U+21E9 -
0x8740 U+3230 -
0x8741 U+322A -
0x8742 U+322B -
0x8743 U+322C -
0x8744 U+322D -
0x8745 U+322E -
0x8746 U+322F -
0x8747 U+3240 -
0x8748 U+3237 -
0x8749 U+3242 -
0x874A U+3243 -
0x874C U+323A -
0x874E U+323E -
0x874F U+3234 -
0x8751 U+323B -
0x8752 U+3236 -
0x8753 U+3233 -
0x8754 U+3235 -
0x8755 U+323C -
0x8756 U+323D -
0x8757 U+323F -
0x8758 U+3238 -
0x8798 U+32A9 -
0x8799 U+3296 -
0x879A U+329D -
0x879B U+3298 -
0x879C U+329E -
0x879E U+3299 -
0x87A3 U+3316 -
0x87A4 U+3305 -
0x87A5 U+3333 -
0x87A6 U+334E -
0x87AA U+3315 -
0x87AE U+3339 -
0x87B1 U+3342 -
0x87BD U+3300 -
0x87BE U+331E -
0x87BF U+332A -
0x87C0 U+3331 -
0x87C1 U+3347 -
0x87FA U+337F -
0x8854 U+301D -
0x8855 U+301F -
0x8868 U+3094 -
0x886A U+30F7 -
0x886B U+30F8 -
0x886C U+30F9 -
0x886D U+30FA -
0xEB51 U+FE33 -
0xEB5C U+FE31 -
0xEB64 U+FE30 -
0xEB69 U+FE35 -
0xEB6A U+FE36 -
0xEB6B U+FE39 -
0xEB6C U+FE3A -
0xEB6F U+FE37 -
0xEB70 U+FE38 -
0xEB71 U+FE3F -
0xEB72 U+FE40 -
0xEB73 U+FE3D -
0xEB74 U+FE3E -
0xEB75 U+FE41 -
0xEB76 U+FE42 -
0xEB77 U+FE43 -
0xEB78 U+FE44 -
0xEB79 U+FE3B -
0xEB7A U+FE3C -