MacJapanese

MacJapaneseまたはMac OS Japaneseは、AppleがShift_JISを独自に拡張した文字コードである。

主にClassic Mac OSのバージョン 7.1からバージョン 9.xまでの間で利用された。

対応する文字コード 
MacJapaneseはIANAによって登録されていない。そのためRFC 2045の§ 6.3に従って、XML、MIMEなどでは "x-Mac-Japanese" という文字列がこの文字コードの名前として使われている（Apple製であるiPodもこの名前を認識する）。

また、MacJapaneseをUnicodeにマッピング（対応付け）した上で、Unicode用の文字符号化方式（UTF-16、UTF-8など）を使って符号化する方法もあり、macOSのファイル名などにはこの方法が使われている。ただし、MacJapanese固有の文字を私用領域 (Private Use Area) のU+F860、U+F861、U+F862、U+F87A、U+F87E、U+F87Fを使って表現するので、macOS以外の環境との互換性は無い。

歴史

文字セット 
以下、「0x」を数字の先頭に付けた十六進法表記を用いて各文字のコードを表す。

1バイト 
0x00から0x7Fまでと0xA1から0xDFまでの部分（いわゆる半角文字の部分）はJIS X 0201に準ずる。ただし0x7EにはASCIIに倣ってU+7Eのチルダが割り当てられている。

次の記号が追加されている。
 0x80 …… U+5C reverse solidus (= backslash)、半角バックスラッシュ「」（ASCII の0x5Cと同じ）
 0xA0 …… U+A0 no-break space、ノーブレークスペース (NBSP) 
 0xFD …… U+A9 copyright sign、著作権記号「」（○で囲まれた「C」）
 0xFE …… U+2122 trade mark sign、商標記号「」（「」）
 0xFF …… halfwidth horizontal ellipsis、半角の欧文用三点リーダー（半角幅の「」）

2バイト 
2バイトで表される文字（いわゆる全角文字）は、JIS X 0208-1990 を基にしている。さらに0x8540から0x886Dに「Apple標準システム外字」（記号など）が、0xEB41から0xED96までに縦書き用の文字が追加されている。Apple標準システム外字のうちUnicodeに対応している文字には次のようなものがある。

Apple標準システム外字

縦書き用の文字 
縦書き用文字には、括弧などの記号を回転させたものと、句読点と小書きの仮名を右上に寄せたものがある。「」（二点リーダ）、「」（三点リーダ）、「」「」（括弧）、「」「」（すみ付き括弧）など。三点リーダは U+FE19 に収録されているが、MacJapaneseのコードポイントとは異なり、互換性はない。

これらは、DTPなどの縦書きに対応したアプリケーションで縦書き表示をする際に、本来の文字コードを変換してQuickDrawの描画APIに渡すために使われたものである。通常、情報交換に使われることはない。

他の文字コードとの対応 
全角文字に関しては、縦書き用文字を別にすると、次のように区分できる。

区分1 
NEC特殊文字にある文字。73字。

シフト符号化表現で符号化すると、MacJapaneseと Windows-31J、Shift_JIS-2004 とでは別のコードポイントが与えられているために、機種依存文字として文字化けの原因となる。例えば「」（○で囲まれた「12」）は Windows-31J や Shift_JIS-2004 では 0x874B に割り当てられているが、MacJapanese においては 0x874B に「」（「（代）」）が割り当てられているといった具合である。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 で表現する。そのため、対応していないOS・フォントやアプリケーションで表示しようとしても、合成されるべきところが合成されずに表示される。文字一覧を下記に記す。文字のうち、左は文字合成、右はCSSの OpenType feature tag を使用したもの。

区分5 
NEC特殊文字にも JIS X 0213 にもUnicodeにもないが、同型・同用途の文字がUnicodeにある文字。7字。

Unicodeのエンコーディングと対応するフォントを用いて情報交換することはできるが、コードポイントは別であり、MacJapanese との互換性はない。なお、MacJapanese で入力した場合に Unicode へ変換するならば区分7に準ずる。Unicode のコードポイントにある同型の文字一覧を下記に記す。文字が2種類あるものは、左はUnicode、右はCSSの OpenType feature tag を使用したもの。

区分6 

NEC特殊文字にも JIS X 0213 にもUnicodeにもないが、同型の別字が JIS X 0213 やUnicodeにある文字。2字。

区分5と同様に、別のコードポイントに同型の文字があるもの。この同型の文字は、MacJapaneseおよびJIS X 0213やUnicodeに収録されている。共に全角ラテン文字と同型。なお、MacJapanese で入力した場合に Unicode へ変換するならば区分7に準ずる。Unicode のコードポイントにある同型の文字一覧を下記に記す。

区分7 
NEC特殊文字にも JIS X 0213 にもUnicodeにもなく、同型・同用途の文字もUnicodeにない文字。9字。

文字合成を行なったり異体字タグを利用したりして表現することになる。そのためにUnicodeの私的領域であるU+F860、U+F861、U+F862、U+F87A、U+F87E、U+F87Fを使っている。したがって、MacJapaneseに対応していないフォントやアプリケーションで表示しようとしても、合成されるべきところが合成されずに表示されたり、異体字となったりする。記号一覧を下記に記す。記号が2種類あるものは、右はCSSの OpenType feature tag を使用したもの。

macOS での対応 

macOSにおいては、MacJapaneseは「Shift_JIS (Mac)」（文字パレット）あるいは「日本語 (Mac OS)」（テキストエディット）と表現される。

また、macOS附属のフォントではOsakaのみがMacJapaneseに完全対応している。ヒラギノはUnicodeとAdobe-Japan1文字コレクションに対応しているため、Unicodeを扱えるアプリケーション上ではUnicodeに対応する文字が存在しない18字（上記の区分5〜7）を除いてMacJapaneseの文字を表示できる。一方、CID を扱えるアプリケーション上でヒラギノを使う場合には、halfwidth horizontal ellipsis （半角三点リーダー）以外の文字を全て表示できる。

iPod での対応

脚注

関連項目 
 文字コード
 JIS X 0208
 Shift_JIS
 Microsoftコードページ932
 Unicode
 囲み文字
 ARIB外字

外部リンク 
 Map (external version) from Mac OS Japanese encoding to Unicode 2.1 and later.
 JIS漢字コード　97年改正の概要と将来展望 (Apple標準システム外字の一覧あり)

文字コード
Classic Mac OS
Unicodeに存在しない文字
日本語用の文字コード