Xperia pro/mini proで日本語と絵文字のフォントを導入する2012/01/29 14:01

Xperia pro/mini proは、そのままでも日本語表示はできるが、漢字フォントのデ
ザインが中華圏のものとなっていて、日本人にはかなり違和感がある。ちゃんとし
た日本語の漢字フォントを導入してしまおう。ついでに、ケータイ絵文字のフォン
トも導入しておくと何かと便利。

この作業は、要rootedなので、事前にrootを取っておくこと。busyboxも必ず導入
しておくこと(busyboxは/system/xbinにリンクを展開しておくこと)。

主な作業は、Windows PCで行っているので、他の環境で行う場合は、独自に対応し
て欲しい。特定のフォントを使って説明しているが、他に好みのフォントがある場
合は、フォント名を読み替えて、同様にやってみると良いだろう。

※注意事項
  以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
  良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
  する事。

※Xperia pro/mini proでは、DroidSansFallback.ttfにCJK(中華圏、日本、韓国)
  フォントが入っている。絵文字フォントを使うためにDroidSansFallback.ttfを
  絵文字フォントで入れ替えると、中華漢字やハングルが表示できなくなってしま
  う。絵文字フォントは、DroidSansJapanese.ttf側にマージした方が良い。以下、
  マージの手順も含めて説明する。

使用するフォント:
  以下の2つのフォントを使用する。
  (1) Migu 1M
    このフォントの特徴は…
    ・テキストエディタで利用しやすい「等幅フォント」である。
    ・半濁点(゜)を大きくしていて、濁点(゛)と判別しやすい。
    ・漢数字の「一」と長音記号「ー」の字形の差がしっかりしている。
  (2) 絵文字結合済みフォント Helvetica
    これは、絵文字入りフォント。アニメーションなしで白黒表示になるが、絵文
    字が表示できるので、ケータイ向けWebサイトの表示やケータイメールを受け
    た時等で便利。

フォントの入手先:
  (1) Migu 1M
    M+とIPAの合成フォント
      http://mix-mplus-ipa.sourceforge.jp/
    ここの「DOWNLOAD」より、以下の「Migu 1M」のZIPファイルをダウンロードす
    る。
      migu-1m-20111002.zip (2012/01/23現在の最新ファイル)
    これを展開して「migu-1m-regular.ttf」を取り出す。
  (2) 絵文字結合済みフォント Helvetica
    iPhoneにも絵文字を!
      http://cova.sakura.ne.jp/sb/
    ここの「絵文字結合済みフォント(emoji_font.zip)」をダウンロードする。
    これを展開して「Helvetica.ttf」を取り出す。

フォントマージツール:
  fontforge というツールを使用する。以下から入手してインストールしておく。
    http://www.geocities.jp/meir000/fontforge/

フォントのマージ:
  1)フォントファイルを開く
    fontforgeでHelvetica.ttfとmigu-1m-regular.ttfを開く。
    fontforgeを起動すると、「フォントを開く」の画面になるので、ファイルを
    選択してHelvetica.ttfを開く。
    続いて、[ファイル]→[開く]で、また「フォントを開く」の画面になるので、
    migu-1m-regular.ttfを開く。
    これで、2つのフォントが同時に開いた状態になる。
  2)フォントのサイズ調整
    それぞれのフォントの定義サイズが異なるので、そのままマージすると表示し
    た時に、絵文字のサイズだけ異常になる。両方のフォント情報を確認して、サ
    イズ調整を行う。フォント情報は、[エレメント]→[フォント情報]で確認でき
    る。ここの[一般情報]を見て、Helvetica.ttfのサイズをmigu-1m-regular.ttf
    に合わせて調整しよう。
    具体的には、Helvetica.ttfの[エレメント]→[フォント情報]で、[一般情報]
    を表示して、以下の項目を変更する。
      [高さ]        1638 →  860
      [深さ]         410 →  140
      [下線の位置]  -105 → -100
      [Height]       101 →   50
    以上の変更をしたら、[OK]で、フォント全体のグリフの変形(サイズ変更)が始
    まるので、終了するまで待つ。
  3)絵文字のグリフをmigu-1m-regular.ttfへコピー
    Helvetica.ttfの57345文字目(U+E001)から57434文字目(U+E05A)を選択してコ
    ピー(Ctrl+C)する。
    migu-1m-regular.ttfの57345文字目を選択して貼り付ける(Ctrl + V)。これで
    57434文字目(U+E05A)まで絵文字が入る。
    同様に、下記の範囲の絵文字をすべてコピーして貼り付ける。
        57345(U+E001) ~ 57434(U+E05A) (これは、上記の説明で示した領域)
        57601(U+E101) ~ 57690(U+E15A)
        57857(U+E201) ~ 57939(U+E253)
        58113(U+E301) ~ 58189(U+E34D)
        58369(U+E401) ~ 58444(U+E44C)
        58625(U+E501) ~ 58679(U+E537)
        58942(U+E63E) ~ 59223(U+E757)
        63743(U+F8FF)
     これで、絵文字のマージが終わったので、マージしたフォントをファイルに
     出力する。migu-1m-regular.ttf側で、[ファイル] → [フォントを出力]で
     フォントファイルの名前を「DroidSansJapanese.ttf」、フォントタイプは
     「TrueType」で[ビットマップフォント無し」として、「保存」する。警告メ
     ッセージやエラーメッセージが出るが気にせず続行して最終的に「保存」す
     れば良い。
     最後に、fontforgeを終了させる。[ファイル]→[終了]で、[保存しない]を
     選択して終了させる。
     以上で、絵文字がマージされたフォントファイルDroidSansJapanese.ttfが完
     成。

入れ替えの準備:
  以下の内容のファイルをテキストエディタで作成しておく(改行コードはLFのみ
  とすること)。
    ファイル名: cpfonts.sh
                     このファイルは、ここからダウンロードできるようにしておいた。
    内容: (行頭の#や$も意味があるので、略さず入れる事)
===
#!/system/bin/sh
bin=/system/bin
bbx=/system/xbin
$bin/mount -o remount,rw /dev/block/mtdblock0 /system
echo "-- Copy DroidSansJapanese.ttf."
$bbx/cp /sdcard/fonts/DroidSansJapanese.ttf /system/fonts/DroidSansJapanese.ttf
$bin/chmod 644 /system/fonts/DroidSansJapanese.ttf
$bin/chown root.root /system/fonts/DroidSansJapanese.ttf
if [ -e /system/fonts/DroidSansSemcCJK.ttf ]; then
  echo "** Rename DroidSansSemcCJK.ttf to DroidSansSemcCJK.ttf.sv."
  $bin/mv /system/fonts/DroidSansSemcCJK.ttf /system/fonts/DroidSansSemcCJK.ttf.sv
fi
# reboot
===
  端末側のmicroSDカードを取り出して、PC側に入れる。
  microSDカードに「fonts」フォルダーを作成する。
  以上で作成した2つのファイル「DroidSansJapanese.ttf、cpfonts.sh」を
  microSDカードのfontsフォルダーにコピーする。
  microSDカードをPCから取り出して、端末側に戻す。

  ※上記のcpfonts.shで、DroidSansSemcCJK.ttfをリネームしている。これは以下
    の理由からである。
    ・DroidSansSemcCJK.ttfには、DroidSansFallback.ttfに入っていない中華漢
      字がいくつか定義されている。これらの漢字は、かなり特殊な文字だと思わ
      れる。これらの中華漢字の一部が絵文字フォントのコードと重なっている。
    ・Xperia pro/mini proでは、フォントの参照順が、以下のようになっている
      らしい。
        DroidSans.ttf → DroidSansSemc.ttf、DroidSansSemcCJK.ttf
                       → DroidSansJapanese.ttf → DroidSansFallback.ttf
      この為、いくつかの絵文字は、同一コードの文字をDroidSansSemcCJK.ttf内
      で先に見つけてしまい、絵文字が表示されず変な漢字が出てきてしまう。
    ・絵文字をすべて正常に表示させるには、DroidSansSemcCJK.ttfが邪魔になる
      ので、リネームしてシステム側から参照されないようにする。
    ・リネームした弊害として、いくつかの特殊な中華漢字が表示されなくなるが
      通常のWebサイトの参照等で、問題になる事は非常にまれだと思われる。
      この辺が気になる場合は、DroidSansSemcCJK.ttfに収納されている中華漢字
      を直接調べてみて欲しい。

端末側での作業:
  事前に、端末エミュレーターのアプリをインストールして、必要な設定をしてお
  く事。端末エミュレーターとして使えるアプリには。以下のものがある。
    Android Terminal Emulator
    ConnectBot
  おすすめは、Terminal Emulator。最近、UTF8対応が完了したそうで、日本語の
  入力も表示もできるようになった。日本語表示の為にConnectBotを使っていた場
  合は、いい機会なので、Terminal Emulatorに乗り換えることをおすすめする。
  端末エミュレーターを起動後、以下のコマンドを実行(行頭の「$ 」や「# 」は
  プロンプトなので、それ以降を入力)。
===
$ su
# sh /sdcard/fonts/cpfonts.sh
# reboot
===
  端末が再起動するのを待って、作業終了。

表示確認:
  日本語フォントが正常に表示されるかは、たとえば「写」をテキストエディタで
  入力・表示してみれば良い。
  絵文字の確認は、標準のブラウザーでこの辺でも表示してみれば良いだろう。
    ドコモ絵文字 http://code.cside.com/i-mode/emojimode/
    ソフトバンク絵文字 http://code.cside.com/softbank/
  すべての絵文字が正しく表示されていれば、大成功だ。

絵文字の入力:
  テキストエディタやメール等で、絵文字を入力したい場合、nicoWnnG IMEが
  かなり便利だ。ハードキーボードからでも、「Sym」キーを何度か押すと絵文字
  一覧が出るので、そのまま入力すると良い。ただし、ドコモ絵文字かソフト
  バンク絵文字かは意識して使用する事。

※今回、フォントのマージに関して、以下のサイトを参考にさせてもらった。
    絵文字入り DroidSans.ttf と DroidSans-Bold.ttf
    http://kadrinche.la/2011/05/22/droidsans-ttf-with-smiley/

コメント

_ suzuka ― 2012/05/15 00:08

フォント入れ替えの際に、とても参考になりました。
他にもいろいろなサイトを参考にしてやってみたのですが、ひとつだけうまくいきません。
絵文字表示はできたのですが、入力できるところまで行ったのdすが、絵文字をメールで送っても相手先で文字化け(?表示)してしまいます。

何かやり忘れたところや、確認すべき所はありますか?
何かわかれば教えていただけると助かります。

_ S.Poe ― 2012/05/15 08:49

メールを送った相手は、どこのキャリア(ソフトバンク? ドコモ? au?)を使ってますか?
入力した絵文字は、ドコモ絵文字かソフトバンク絵文字か確認しましたか?
う~ん、確認するところって、そんなところかなぁ。

_ suzuka ― 2012/05/15 12:53

ドコモとauに送って、両方文字化けしてました。
Xperiapro上ではきちんと絵文字が表示(白黒)されるのですが、相手のガラケー上では「?」となってしまいます。

ちなみにメーラーはk9を使ってます。

_ S.Poe ― 2012/05/18 16:09

それ、K-9 Mailの設定の問題だと思います。
K-9 Mail上で、メニュー→その他→設定→アカウント設定→メール送信
で、メッセージ形式を「テキスト」にしていると、メール送信時に絵文字が
「?」に変換されるようです。
ここを「HTML」にすると絵文字がそのまま送信されます。
自分の所は、「HTML」に設定して、絵文字のメール、ちゃんと
送信できてます。

トラックバック