旧AiファイルをMac版CS以降で開く時に文字化けを防ぐ方法

更新:CC以降のマッピングファイルの場所を追記しました。


注1:ここで説明する方法は、くれぐれも自己責任で慎重に行ってください。

旧Aiファイル(=シフトJISベースで保存されるv10までのAiファイル)をMac版CS以降で開くと、シフトJIS外字がすべて化けます。こんな具合に。

見て分かるように、化けるだけではありません。文字そのものが完全に消失している箇所まであります。(イラレ8の文字化け見本ファイル

OpenTypeが登場するまで、日本のMac DTPでは83pvの和文PostScriptフォントが使われていました。83pvはWindowsのシフトJISであるCP932とほとんど同じです。シフトJIS外字領域の13区にもCP932と同様に丸数字、ローマ数字、単位記号などがあり、外字フォントなしで使えたため、日本語のMac DTPで普通によく使われました。その外字領域の文字がMac版CS以降で開くと上図のように惨憺たる有り様になってしまいます。

この原因はたった1つ。Illustrator CS以降は、旧Aiファイルを開く時に文字をシフトJISからUnicodeへ変換するのですが、Mac版はその際に参照している「マッピングファイル」の内容が不適切だからです。(1

そして解決方法もたった1つ。適切なマッピングファイルに差し替えればいいだけです。下図はこの解決方法で実際に旧AiファイルをCS4で開いたもの。

マッピングファイルを差し替える方法

1.マッピングファイルがある場所

Illustrator CS以降が参照しているマッピングファイルは、バージョンによって異なる場所にあります。(2(3

  • CS3, 4 /Library/Application Support/Adobe/TypeSupport/Unicode/Mappings/Mac
  • CS5 /Library/Application Support/Adobe/TypeSupport/CS5/Unicode/Mappings/Mac
  • CS6 /Library/Application Support/Adobe/TypeSupport/CS6/Unicode/Mappings/Mac
  • CC, CC 2014 Illustratorアプリ本体(アプリケーションパッケージ)内の
    Required/typesupport/unicode/mappings/mac
  • CC 2015以降 Illustratorアプリ本体(アプリケーションパッケージ)内の
    Contents/Required/typesupport/unicode/mappings/mac

各Macフォルダの中にテキストファイルが多数あり、そのなかの「JAPANESE.TXT」が、Mac版 Illustrator CS以降の日本語版が参照しているマッピングファイルです。

デフォルトの「JAPANESE.TXT」の中身はきわめて不適切ですから、適切な83pvまたはCP932のマッピングファイルに差し替えます。

2.83pvまたはCP932のマッピングファイル

どちらもMacフォルダのすぐ近くにあります。

  • 83pv Mappings/Adobe/japanese83pv.txt
  • CP932 Mappings/Win/CP932.TXT

どちらかを他の場所にファイルコピーして、ファイル名を「JAPANESE.TXT」に変えます。83pvとCP932はどちらでもかまいません。私はCP932を選びました。 (4

3.マッピングファイルを差し替える

先に、オリジナルの「JAPANESE.TXT」を退避させます。私は「退避」フォルダを作って、その中に入れました。そして先ほどの「JAPANESE.TXT(中身は83pvまたはCP932)」をMacフォルダに入れます。

これで完了です。この時にIllustratorが起動していたら、一旦終了して起動し直してください。

4.注意点

この方法は、旧Aiファイルで使われている和文フォントが83pvであることが前提です。もし和文TrueTypeが使われていたら、90pvなので、この方法ではかえって文字化けしてしまいます。しかし商業印刷レベルの Mac DTP で和文TrueTypeを使うのは事故の元であり、禁忌だったので、Macで作られた旧Aiファイルで和文TrueTypeが使われていることはまずほとんどないでしょう。

追記

上記リンク先では「イラレ10までのCIDフォントの文字がCS3以降で開くと化ける、CS,CS2では化けない」とありますが、私の環境ではCS2も化けます。この違いはAcrobat 8.2以降のアップデータでマッピングファイルが変更されたのが原因ではないかと推測しています。

  1. どうして不適切なのか。分かりやすくいうと、Mac版 Illustrator CS以降は、旧Aiファイルで使われた和文フォントがOsakaなどの和文TrueTypeであると決めつけているのです。当時、和文TrueTypeは正常に出力されない危険があったので、まともなDTPデータで使われることはありませんでした。この実情を無視し、不適切なマッピングでUnicodeへ変換しているため、文字化け&文字消失が発生します。(ちなみにInDesignは、QuarkXPressドキュメントを変換する時にCS3以降で適切にマッピングします) []
  2. 環境によっては「TypeSupport」フォルダの真上に「TypeSpt」という紛らわしい名前のフォルダがあります。「TypeSpt」の中身は絶対にいじらないでください。これと同様のトラブルになります。もし誤っていじってしまったら、リンク先の[解決方法 1.「Mac」フォルダをこの文書に添付されているものと入れ替える]で直ります。 []
  3. CS2まではさらに別のマッピングファイルを参照しているようです。おそらく「TypeSpt」の中でしょう。ここはいじってはいけません。 []
  4. 83pvとCP932の違いについて。83pvの 0x8540-0x86ED の文字がCP932にはありません。これらの文字を使っている場合は83pvにした方が無難……かと思いきや、Japanese83pv.txt ではこの領域のかなりの文字がマッピングされていません。CP932のNEC/IBM拡張文字は83pvにありません。旧Aiファイルで2バイトBiblosのIBM選定外字を使っている場合はCP932にした方がいいかも。 []

6件のコメント

  1. 素晴らしい! 以前から出来ないものかと考えていたことでした。ほかにOS9ではCIDフォントの等幅半角(シフトJISの8547-859A、実際は数字が大部分)を使うことがよく有りました。OS10では等幅半角字形を使えば良いのでしょうが、これがOS9のデータを移行したいときのネックとなってしまいました。ai8のアクションで1バイトへ置換しようとしましたがうまくできませんでした。今となっては話しても理解してくれる人も滅多にいません。しかし半角字形以外は非常にうまくいきました。感謝感激です!

  2. sanjoさん、 8547-859A を使う場合もあったんですね! Japanese83pv.txt を見てみたら、たしかにその領域はマッピングされてませんね。でしたら、ご自分で書き加えてみるといいかも。OpenTypeの等幅半角字形グリフへのマッピングは無理ですけど、普通の欧文数字へのマッピングならできると思います。

  3. CIDフォントのほとんどの書体に半角のデザインは作られていました。和文の全角と同じ大きさでデザインされいるのも良い点でした。OCFのときはピッチが全角だったのであまり使いませんでしたが、CIDになってから半角ピッチで送られるようになりました。出力でも問題があったことはありません。
    MACの組版ソフトで写研へ出力するVxastarなど
    でEPS出力オプションを選択すると上記の領域の数字を使っているようで写研出力に近い出力が出来ました。「夢の後」ですね。
    なお8547-859A に対応するunicode番号がパレットでは見つけられません。可能であればとてもうれしいのですが……。

  4. sanjoさん
    Unicodeに等幅半角文字はないんですよ〜。普通の文字に置き換えるしかないです。こんな感じで。

    0x8550 0x0031 #DIGIT ONE
    0x8551 0x0032 #DIGIT TWO
    0x8552 0x0033 #DIGIT THREE
    ……

    救済措置ですね。消失してしまうよりマシということです。

    追記
    上の3つを試したらできましたよ〜(・∀・)

  5. 出来ました! 多用した854B〜855Aまでとしました。あとは組体裁を整え(これが結構面倒)等幅字形を使う必要があればスクリブトで何とかなりそうです。これで日本のDTP組版に携わる人の何万人かが救われます? 有り難うございます!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です