MacJapanese (Mac OS Japanese) とは
MacJapanese、またはMac OS Japaneseは、
AppleがShift_JISを独自に拡張した
文字コードです。主に
Classic Mac OSのバージョン7.1から9.xまでの間で利用されていました。この
文字コードは、日本の文字をコンピュータ上で表現するために重要な役割を果たしました。
MacJapaneseは、IANAに登録されていないため、XMLやMIMEなどでは`x-Mac-Japanese`という
文字列が用いられます。
Apple製のiPodもこの名前を認識します。
また、MacJapaneseを
Unicodeにマッピングし、
UTF-16や
UTF-8などの
Unicode用の
文字符号化方式で符号化する方法も存在します。macOSのファイル名などでこの方法が用いられますが、MacJapanese固有の文字は私用領域(Private Use Area)を使用するため、macOS以外の環境との互換性はありません。
文字セット
MacJapaneseの
文字コードは、1バイト文字と2バイト文字で構成されています。
1バイト文字
0x00から0x7Fと0xA1から0xDFの部分は[JIS X 0201]]に準拠しています。ただし、0x7EにはASCIIと同様に[[チルダ]が割り当てられています。
以下の記号が追加されています。
0x80: 半角バックスラッシュ '\' (U+5C)
0xA0:
ノーブレークスペース (NBSP) (U+A0)
0xFD: 著作権記号 '©' (U+A9)
0xFE: 商標記号 '™' (U+2122)
0xFF: 半角の欧文用三点リーダー '...' (halfwidth horizontal ellipsis)
2バイト文字
2バイトで表される文字は、
JIS X 0208-1990を基にしています。さらに、0x8540から0x886Dに「
Apple標準システム
外字」が、0xEB41から0xED96までに縦書き用の文字が追加されています。
Apple標準システム外字のうち、Unicodeに対応する文字も存在します。
縦書き用の文字
縦書き用文字には、括弧などの記号を回転させたものや、句読点と小書きの仮名を右上に寄せたものがあります。これらは、DTPなどの縦書き対応アプリケーションで、文字を変換して描画APIに渡すために使用されました。情報交換に使われることは稀です。
例: 「︰」、「︙」、「︵」、「︶」、「︻」、「︼」など。三点リーダーはU+FE19に収録されていますが、MacJapaneseのコードポイントとは互換性がありません。
全角文字に関して、MacJapaneseと他の文字コードとの対応は以下の区分に分けられます。
区分1: NEC特殊文字にある文字 (73字)
MacJapaneseとWindows-31J、Shift_JIS-2004では異なるコードポイントが割り当てられているため、
機種依存文字として
文字化けの原因となります。
例: 「⑫」はWindows-31JやShift_JIS-2004では0x874Bですが、MacJapaneseでは「㈹」が割り当てられています。
Unicodeでは同じコードポイントが与えられているため、
文字化けは発生しません。
区分2: NEC特殊文字になく、JIS X 0213にある文字 (53字)
区分1と同様に、Shift_JIS-2004で表現するとMacJapaneseとは異なるコードポイントとなるため、文字化けの原因となります。
区分3: NEC特殊文字にもJIS X 0213にもなく、Unicodeにある文字 (109字)
Unicodeのエンコーディング(
UTF-16、
UTF-8など)と、対応するグリフを持つフォントを使用すれば、正常に情報交換が可能です。
MacJapaneseからUnicodeに変換する際には、「UnicodeとMacJapaneseの変換テーブル」が必要になります。
区分4: NEC特殊文字にもJIS X 0213にもUnicodeにもないが、Unicodeでは文字合成で表せる文字 (3字)
囲み文字であり、記号用ダイアクリティカルマークU+20DDを用いて文字合成で表現するか、CSSの
OpenType feature tagで表現します。
対応していない環境では、合成されずに表示されることがあります。
区分5: NEC特殊文字にもJIS X 0213にもUnicodeにもないが、同型・同用途の文字がUnicodeにある文字 (7字)
Unicodeのエンコーディングと対応するフォントを用いて情報交換できますが、コードポイントは異なります。
MacJapaneseからUnicodeへ変換する場合は区分7に準じます。
区分6: NEC特殊文字にもJIS X 0213にもUnicodeにもないが、同型の別字がJIS X 0213やUnicodeにある文字 (2字)
区分5と同様に、別のコードポイントに同型の文字があります。
MacJapaneseからUnicodeへ変換する場合は区分7に準じます。
区分7: NEC特殊文字にもJIS X 0213にもUnicodeにもなく、同型・同用途の文字もUnicodeにない文字 (9字)
文字合成や異体字タグを利用して表現します。
*
Unicodeの私的領域(U+F860、U+F861、U+F862、U+F87A、U+F87E、U+F87F)を使用しているため、対応していない環境では正しく表示されません。
macOSでの対応
macOSでは、MacJapaneseは「Shift_JIS (Mac)」または「日本語 (Mac OS)」として表示されます。macOS付属フォントでは、OsakaのみがMacJapaneseに完全対応しています。
ヒラギノは
Unicodeと
Adobe-Japan1文字コレクションに対応しており、
Unicodeを扱えるアプリケーションでは区分5〜7の文字を除いて表示できます。CIDを扱えるアプリケーションでは、半角三点リーダー以外の全ての文字を表示可能です。
iPodでの対応
iPodも、MacJapaneseを`x-Mac-Japanese`として認識します。
まとめ
MacJapaneseは、
Classic Mac OSにおいて重要な役割を果たした
文字コードです。他の
文字コードとの互換性や
Unicodeへの変換には注意が必要ですが、その歴史的背景や技術的特徴を理解することは、
文字コードの世界をより深く知る上で有益です。