2012-01-26 3 views
1

У меня есть действительная строка Json (по крайней мере, каждый проверенный онлайн-счетчик говорит так), который содержит некоторые китайские символы.Android parse Json с китайскими персонажами

JSON строка выглядит следующим образом:

{ "Название": "\ u8981 \ u805e - \ u83ef \ u723e \ u8857 \ u65e5 \ u5831", "URL": "HTTP: // сп. wsj.com " "убывание": "\ u300a \ u83ef \ u723e \ u8857 \ u65e5 \ u5831 \ u300b \ u4e2d \ u6587 \ u7db2 \ u7d61 \ u7248 \ u6700 \ u65b0 \ u8ca1 \ u7d93 \ u8981 \ u805e"," ImageUrl ": нулевой," lastUpdate ":" 1327588937" , "элементы": [{ "название": "\ u4e16 \ u8cbf \ u7d44 \ u7e54 \ u7e3d \ u5e79 \ u4e8b \ ufe55 \ u4eba \ u6c11 \ u5e63 \ u5e63 \ u503c \ u88ab \ u4f4e \ u4f30 \ ufe50 \ u4f46 \ u4f4e \ u4f30 \ u7a0b \ u5ea6 \ u4e0d \ u660e " "убывание":" \ u4e16 \ u754c \ u8cbf \ u6613 \ u7d44 \ u7e54 \ u7e3d \ u5e79 \ u4e8b \ u5e15 \ u65af \ u5361 \ u723e \ uff0e \ u62c9 \ u7c73 \ u9031 \ u56db \ u8868 \ u793a \ ufe50 \ u4eba \ u6c11 \ u5e63 \ u532f \ u7387 \ u88ab \ u660e \ u986f \ u4f4e \ u4f30 \ ufe50 \ u4f46 \ u4f4e \ u4f30 \ u7a0b \ u5ea6 \ u9084 \ u4e0d \ u6e05 \ u695a \ u3002" , "URL": "http://cn.wsj.com/big5/20120126/BCHc-20120126W R182711424.asp? Source = rss "," pubdate ": null}]}

Теперь, когда я разобрал JsonString в Android через новый JsonObject (jsonString), я получил только несколько квадратов вместо символов.

Зачем использовать андроид для этой строки json?

Любая помощь будет оценена.

Если кто-то хотел бы иметь сервер Ressource, его можно найти по адресу:

// редактировать URL удалены

ответ

0
public static String test(){ 
    String testResult= ""; 
    try { 
     HttpGet get = new HttpGet("http://xxxxx");//edit url removed. 
     DefaultHttpClient httpclient = new DefaultHttpClient(); 
     HttpResponse response = httpclient.execute(get); 
     String result = EntityUtils.toString(response.getEntity()); 
     JSONObject obj = new JSONObject(result); 
     if(!obj.isNull("title")){ 
      testResult= obj.getString("title"); 
      Log.d("Test","Test1:"+ testResult); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return testResult;// 
} 

, а затем TextView.setText (TestResult); Это работает для меня.

это традиционная китайская Строка: "要聞 - 華爾街 日報" Может быть ваш диск не имеет традиционный китайский шрифта ????

+0

Не работает, это дает мне исключение JSON при разборе (at: new JsonObject (result)) – VinoRosso

+0

Если вы используете Android SDK Json Parser, вы должны использовать новый org.json.JSONObject (String) –

+0

Не работает ни заголовок данные выглядят следующим образом: URLEncode:% E8% A6% 81% E8% 81% 9E -% E8% 8F% AF% E7% 88% BE% E8% A1% 97% E6% 97% A5% E5% A0% B1 – VinoRosso

0

Когда вы получите ваш JSON, вы, возможно, придется декодировать результат UTF-8 когда вы строите свой результат. Взгляните на декодирование utf8. Нечто похожее на this, but with JSON

+0

им уже с помощью этого UTF-8 параметров: String = EntityUtils.toString JSON (responseEntity , HTTP.UTF_8); но без эффекта – VinoRosso