【问题标题】:How to read \uxxxx from json如何从 json 中读取 \uxxxx
【发布时间】:2012-01-11 12:31:22
【问题描述】:

我的 json 格式如下:{"0":{"title":"\u0417\u041d: \u0415\u0432\u0440\u043e\ ...

如何将\uxxxx编码成可读的视图?

json我接下一个方式:

HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet("http://android.forum-example.org/?a=1&b=2&c=3");
HttpResponse response = httpClient.execute(request);
resJson = HttpHelper.requestStr(response);
Log.v("JSON:", resJson);

requestStr(response)

public static String requestStr(HttpResponse response){
        String result = "";
        try{
            InputStream in = response.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            StringBuilder str = new StringBuilder();
            String line = null;
            while((line = reader.readLine()) != null){
                str.append(line + "\n");
            }
            in.close();
            result = str.toString();
        }catch(Exception ex){
            result = "Error";
        }
        return result;
}

即使 result = new String(resJson.getBytes("UTF-8"), "UTF-8"); 也无济于事。但是当我将它与手工字符串一起使用时(例如 String str="\u0435\u043b\u0438 \u0415\u0432\"),它就可以工作了。

【问题讨论】:

    标签: android json unicode


    【解决方案1】:

    试试这个,然后告诉我会发生什么,

    HttpResponse response = httpClient.execute(request);
    
    HttpEntity entity = response.getEntity();
    // convert entity response to string
      if (entity != null) {
        InputStream is = entity.getContent();
        // convert stream to string
        result = convertStreamToString(is); 
        result = result.replace("\n", "");
        }
    

    这是convertStreamToString(is);

    public static String convertStreamToString(InputStream is) throws Exception {
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            StringBuilder sb = new StringBuilder();
            String line = null;
    
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
    
            is.close();
            return sb.toString();
        }
    

    【讨论】:

    • 没有任何改变。 Log.v("JSON:", result); 给我:11-06 16:14:28.586: V/JSON:(12998): {"0":{"title":" \u0417\u041d: \u0415\u0432\u0440\u043e
    猜你喜欢
    • 2019-09-19
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2019-06-26
    • 2018-03-15
    • 2016-08-26
    相关资源
    最近更新 更多