0

これは変換されませんå

String j_post = new String((byte[]) j_posts.getJSONObject(i).get("tagline").toString().getBytes("utf-8"), "utf-8");

しかし、以下は

String j_post = new String((byte[]) "\u00e5".getBytes("utf-8"), "utf-8");

これを修正するにはどうすればよいですか?

更新:JSONObjectとしてキャストする前にエンコーディングを修正しようとしましたが、まだ機能しません。

json = new JSONObject(new String((byte[]) jsonContent.getBytes("utf-8"), "utf-8"));

    JSONArray j_posts = json.getJSONArray("posts");
    for (int i = 0; i<j_posts.length();i++){
        //[String(byte[] data)][2]
        String j_post =j_posts.getJSONObject(i).get("tagline").toString();
        post_data.add(new Post(j_post));
    }

Web サーバーからの応答として文字列を取得していることに注意してください。

4

2 に答える 2

1

これは、JSON に必要な形式の文字がないためです。JSON が準備されているコードをUTF-8調べ、JSON が形成されたときにそこにエンコーディングを含めます。

于 2013-03-04T14:08:20.873 に答える
0
String j_post = new String((byte[]) "\u00e5".getBytes("utf-8"), "utf-8");

確かに(より良い)です:

String j_post = "\u00e5";

それゆえ

String j_post = new String((byte[]) j_posts.getJSONObject(i).get("tagline")
        .toString().getBytes("utf-8"), "utf-8");

String j_post = j_posts.getJSONObject(i).get("tagline").toString();

したがって、@RJ は正しく、データは破損しています: 取得または送信 (間違ったエンコーディング) のいずれかです。

于 2013-03-04T14:51:56.600 に答える