Garmin eTrex30英語版が日本語表示できない真の理由?

しばらくeTrex30英語版で日本語表示させようと頑張っていたのですが、ふとフォントファイル側をいじることで解決できないかと思い立ったのでメモまで。

文字コードというのは、Shift-JISやUTF-8、EUCなど日本語文字を表示するためのコードを定義しています。ただこのコードならこの文字だ…という対応は、プログラムが内包している場合もあるかもしれませんが、各フォントファイルに記述があります。TrueTypeフォントならいわゆるcmapという部分。フォントの文字自体は、フォントファイル内ではグリフID(GID)で管理されており、これとUTF8などのコードとの対応表を内部に持っているわけです。

ということは、今回地図ファイルの中で、中華圏のBIG-5などの文字コードを指定し、フォントファイル側でBIG-5用のcmapの対応表をShift-JISを指してやれば、結局はShift-JISとして文字が出るんじゃないだろうか…という憶測です。

と思って、さっそく有名なVL-PGothic-Regularあたりをちょこちょこっと見てみました。ツールはFontForgeのshowttfです。サクッとビルドしてフォントファイルを読み込ませ、cmapを見てみるとあれれ?


Encoding (cmap) table (at 69220)
platform=0 specific=3 offset=52 Unicode 2.0+
platform=0 specific=10 offset=35332 ???
platform=0 specific=5 offset=88556 Unicode Variations
platform=1 specific=0 offset=89896 Mac Roman
platform=3 specific=1 offset=52 MS Unicode
platform=3 specific=10 offset=35332 MS UCS4
Format=12 len=53224 Language=0
Glyph 0 -> U+0000
Glyph 1 -> U+0000

こんな感じに、Shift-JISがありません。対応しているのはUnicode ONLY?このフォントをShift-JISで表示しているWindowsなどは実は内部はUnicodeだったりするか、内部変換していたりするのでしょうか。

フォントにはShift-JISベースのフォントと、Unicodeベースのフォントがあるような話もWeb上ではちらほら見かけましたが、これはそうするとUnicodeベースのフォントでしょうか。

そうであるならば、Shift-JISが表示できないのも納得かもしれません。Shift-JISベースのフォントに入れ替えたら実はさっくりと日本語が表示できたりして…?

Windows用にビルドしたツールはガレージに置いておきます。