リッチテキスト関連の文字化けについてのとりあえずのまとめ
- 数回にわたって書いてきたMac OS Xのリッチテキスト関連の文字化けについて、よくわからない点も残っているが、とりあえずまとめてみようと思う。
- 今のところ把握している問題は3つある。1つ目は、Mac OS X 10.5 Leopardのシステム・ルーチンが生成するリッチテキストの問題。2つ目は、InDesignにおけるリッチテキストの解釈の問題。3つ目は、InDesignが書き出すリッチテキストの問題である。
- 下図は、Mac OS X 10.4 Tiger上のリッチテキスト・モードのJedit Xで、テキストをコピー&ペーストした場合のエンコーディングの変化を表したもの。WindowsとMacでShift-JIS to Unicodeのマッピングが異なる文字のうち、「Win側」の文字をグレー地で、「Mac側」の文字を黄色地で示した。クリップボード上では「Mac側」の文字のエンコーディングがMacJapaneseに変化しているが、きちんと元にもどっている。エンコーディングの変換が正しく行われていれば、このように「左ブロックはすべてグレー地、右ブロックはすべて黄色地」となる。
- 下図は、Mac OS X 10.5 Leopard上のリッチテキスト・モードのJedit Xで、テキストをコピー&ペーストした場合のエンコーディングの変化を表したもの。リッチテキストに変換された時点で、右ブロックが全滅。この動作はテキストエディットでも共通なので、これらのアプリケーションが共用しているシステム・ルーチンの問題だと思われる。
- 下図のU+2212の文字化けは、InDesignがリッチテキストを解釈するケース(クリップボードの全情報をペーストする設定となっている場合のエディタからのリッチテキストのコピー&ペースト、リッチテキスト書類の配置など)で発生する。また、わたしの環境では、ヒラギノは化け、小塚書体やリュウミンは化けない。おそらくInDesignが不吉な例外処理を行っているものと思われるが、意味は不明。
- 下図は、Leopard上のJedit XからInDesignにテキストをコピー&ペーストした場合の文字化け。左ブロックでU+2225がU+2016に化けているのは、おそらくInDesignの仕様。Adobe-Japan1フォントでは、U+2225に対応するCID=15489を表示するためにはAdobe-Japan1-5のサポートが必要となるため、(そうでないフォントでも表示できるように)CP932 to Unicodeのテーブルに手を加えてあるのだろう。この仕様により、右ブロックのU+2016は、2回化けて結果的に元にもどっている。右ブロックにおける黄色地→グレー地の文字化けは、すでにクリップボード上で発生しているものなので、InDesignの責任ではない。