2017.05.22
Windows版 Android StudioでTerminalの文字化けを直す
Android StudioにはTerminalが付属しており、ここから各種コマンドを実行できます。
Windows環境のAndroid StudioのTerminalで、sqlite3コマンドを使ってエミュレータ上で実行したアプリ内のSQLiteデータベースの中身を確認しようとしたところ、日本語の値が文字化けしてしまいました。
今回はこの文字化けの解決方法を紹介します。
結論からいうと次のコマンドを実行するだけで良いです。
> chcp 65001
文字化けの原因は、SQLiteのエンコードがutf-8なのに対してWindowsのコマンドプロンプトの標準の文字コードがshift-jisであることです。よってコマンドプロンプトの文字コードをutf-8に変更する必要があります。
上記のchcpコマンドは文字コードを設定するコマンドです。65001がutf-8に対応します。
(ちなみにshift-jisは932です)
これで無事SQLiteの中にある日本語も正常に表示されるようになります。
おまけ
今回の本筋ではないですが、AndroidのSQLiteデータベースの中身を確認するコマンドも載せておきます。
以下のコマンドはAndroid StudioのTerminalで実行しています。
adbコマンドで端末のシェル操作が出来る状態にします。
\MyApp> adb shell
sqlite3コマンドでデータベースに接続します。
# sqlite3 /data/data/[APP_PACKAGE_NAME]/databases/[DB_NAME]
接続できると次のようにsqliteのコマンドが実行できるようになります。
SELECT文などSQLを発行できます。
sqlite>