2010年10月5日火曜日

adb logcat で UTF-8 を文字化けせずに見る方法

先日、開発していて気がついたのですが、

eclipse 上の Logcat では、UTF-8 が文字化けして表示されます。



う~ん、と思っていたところ、コマンド・プロンプトで、

adb logcat とコマンドを実行する方法があることも分かりましたが、

これでも文字化けしてしまいます。

出力例
 V/AllMapInfo(  214): name        = 2番札所ã�¸ã�®é�“
 V/AllMapInfo(  214): route.size  = 14
 V/AllMapInfo(  214): rootnum     = 2
 V/AllMapInfo(  214): name        = 3番札所ã�¸ã�®é�“
 V/AllMapInfo(  214): route.size  = 45
 V/AllMapInfo(  214): rootnum     = 3
 V/AllMapInfo(  214): name        = 4番札所ã�¸ã�®é�“


が! しかし! コマンドを実行する方法では、

一手間加えてあげれば、きちんと表示されることが分かりました ヾ(o・д・)ノ

ググって調べると、レジストリの TrueTypeFont を新規追加しないと
いけなさそうなんですが、自分の Vista の環境で試したところ、
やらなくても、うまくいきました。

  1. レジストリの設定

    2010/10/6 訂正。再度、試行錯誤してみた結果、これは実施しなくてもよさそうです。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont にて、名前 0. (ゼロとドット)、種類 REG_SZ、値 MS Gothic を設定。

  1. OS再起動
    2010/10/6 訂正。1. のレジストリ変更がなければ、これも実施不要です。

  2. コマンド・プロンプト起動&事前確認
    コマンド・プロンプトを起動し、タイトル・バーを右クリックからプロパティを選択し、
    フォントが MS ゴシック になっていることを確認。
    なってなければ、MS ゴシック に変更する。

    さらに、コマンド・プロンプト上で、chcp を実行し、
    現在のコード ページが 932 (Shift-JIS) であることを確認。
    932 でない場合は、chcp 932 で変更する。
  1. 文字コード UTF8 に変更し、adb logcat を実行

    chcp 65001 を実行し、コードページを UTF8 に変更。
    adb logcat を実行すれば、UTF-8 が表示されるようになります。

    実行例
     > chcp 65001
     > adb logcat
     (省略)
     V/DEBUG ( 213): Map name = お遍路
     D/dalvikvm( 213): GC freed 6302 objects / 327536 bytes in 115ms
     V/AllMapInfo( 213): mapid = 0
     V/AllMapInfo( 213): name = お遍路
     (省略)

無事、UTF-8 が表示されるようになりました。