Androidエミュレータでの文字化けについて

2,019 views
Skip to first unread message

eijixAG

unread,
Apr 17, 2011, 4:18:22 AM4/17/11
to 日本Androidの会
こんにちは。
eijixAGと申します。

Androidエミュレータでの日本語文字化けで、ハマってます。

詳細:
Twitterクライアントっぽいアプリを開発しています。
apiを叩き、json形式で受け取るレスポンスを項目ごとに区切り、ListViewにて表示。
adapterを噛ませて、imageviewやらtextviewやらを組み合わせて1行に表示。

apiを叩いて返ってくるレスポンスのエンコードは、utf-8形式。
画面レイアウトはlayoutのxmlにて実装。エンコードはutf-8。
開発環境は、eclipse
プロジェクト>プロパティで表示される、リソースのエンコードはUTF-8に変更済み。
実行構成>共通で確認できるエンコードは(その他)UTF-8。

しかし、日本語のみ文字化けします。
オブジェクトなどはきちんと取得でき、半角英数は問題なく表示されます。
日本語の文中に存在する半角英数も問題なく表示。
ちなみに、半角の□っぽいのや、半角aの上に~が付いたようなのが出ます。

試しに、apiをブラウザから叩いてみると、きれいな日本語で返ってきました。
文字コードはやはりutf-8(厳密にはUTF-8N)

今回の開発とは無関係の、webAPIを試してみたところ、そちらは普通に日本語が表示できるのも逆に悩みどころ。

他に何か試せることや、確認すべき点などアドバイスを頂けたら、と思います。
よろしくお願いします。

eijixAG

mosaki4

unread,
Apr 17, 2011, 6:56:03 AM4/17/11
to android-g...@googlegroups.com
大崎といいます

実際のコードがないので推測になりますが
HttpPostを使っていて、setEntityで文字コードを指定していないのではないでしょうか?


2011年4月17日17:18 eijixAG <nish...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


eijixAG

unread,
Apr 17, 2011, 9:10:42 PM4/17/11
to 日本Androidの会
大崎様

eijixAGです。

ご返信、ありがとうございます。
アドバイスを参考に、Entityの設定の個所で文字コードを明示することで、日本語表示ができました。

android開発を始めてまだ間もなく、文字コード指定がどこでできるのかもわからず、
故に調べてもEntityでコード指定できるとも検討がつかなかったので、途方にくれていました。
どこかで明示すればいいとは思ってました。
byte配列変換まで試しました。
助かりました。

一応、備忘録的に、JSON読み出しの部分をコピペしておきます。
========
// 接続されたサーバからの入力ストリームを介して JSON 形式データを読み出し
String json = null;

if (httpResponse != null &&
httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
HttpEntity httpEntity = httpResponse.getEntity();
try {
// ここで、文字コードを指定する。
json = EntityUtils.toString(httpEntity, "UTF-8");
}
catch (ParseException e) {
//例外処理
}
catch (IOException e) {
//例外処理
}
finally {
try {
httpEntity.consumeContent();
}
catch (IOException e) {
//例外処理
}
}
}
========

ありがとうございました。

eijixAG







On 4月17日, 午後7:56, mosaki4 <mosa...@gmail.com> wrote:
> 大崎といいます
>
> 実際のコードがないので推測になりますが
> HttpPostを使っていて、setEntityで文字コードを指定していないのではないでしょうか?
>
> 2011年4月17日17:18 eijixAG <nishid...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages