Garmin eTrex英語版は Shift-JISが読めない

前回の記事で、調べ始めたeTrex30 英語版での地図で日本語が表示できない問題。結論から言うと文字コードが原因でした。文字コードとは何という話は省略するとして、eTrex30で日本語を表示すようとする場合、UTF8であることが必要。メニューなどはUTF8化してあるので問題ありませんが、地図の中の文字はgmapsupp.imgというバイナリファイルの中に直接文字列が保持されています。このファイルの中には、文字コードを指示する部分もあって、これを Shift-JIS の 0xA4 0x03 から UTF8の0xE9 0xFDに書き換えてやれば、数字などの一部の文字は表示可能になります。これは、UTF8とShift-JISは半角英字については同じASCIIコードを使用しているためです。

なので最初のステップとして、下記くらいは簡単に実現できます。

  • 地図ファイルの中にある文字コードの指定をUTF8と書き換えると、半角英数字(等高線)などは表示可能になる。
  • UTF8ではなく、中華圏の文字コードなどを指定する。どうやら全角文字も出てくるようだが、もちろん日本語のShift-JISとは文字コードが違うため文字化けが発生する。

そして本気で日本語を正しく表示しようとするには、

  • eTrex30のファームウェアがShift-JISを読めるようにする
  • 地図ファイル(gmapsupp.img)の中にある文字列をShift-JISからUTF8に書き換える。

の2つが対処方法となります。特にWEB上の情報を読み漁っている限り、前者は今後の対応を待っても厳しいだろうことは予想されます。

現在のeTrex英語版を保有している他の方の対処方法を見る限り、

  • フリー素材を使って1から地図を作成する。その際に、文字コードをUTF8となるよう気を付ける
  • そもそもベクター地図じゃなくて、文字を画像として含んでいるラスター地図を利用する。

くらいがメジャーなようです。前者は地図作成ツールが対応したりしなかったりしているようです。それに自作した地図は良いのですが、すでに作ってある地図を自前で作り直すのちょっとつらい。そういうのは大体こだわって作ってあるので、自前で作るより良い出来なのです。