Nicht analysieren und anzeigen, die nicht-utf8-Zeichen Lesen aus einer http-Anforderung

Ich bin mit Java zu Parsen Anfrage

http://ajax.googleapis.com/ajax/services/search/web?start=0&rsz=large&v=1.0&q=rz+img+news+recordid+border

die als Ergebnis dieser (gekürzt, für die der Kürze halber) JSON-Datei:

{"responseData":{"results":
<...>
"visibleUrl":"www.coolcook.net",
"cacheUrl":"http://www.google.com/search?q\u003dcache:p4Ke5q6zpnUJ:www.coolcook.net",
"title":"مطبخ مطايب - كباب الدجاج والخضار بصلصة الروب",
"titleNoFormatting":"مطبخ مطايب - كباب الدجاج والخضار بصلصة الروب","\u003drz+img+news+recordid+border"}}, 
<...>
"responseDetails": null, "responseStatus": 200}

Mein problem liegt in den arabischen Zeichen zurückgegeben (die nicht-unicode-für diese Angelegenheit). Ich habe versucht, Sie zurück konvertieren auf unicode-etwas wie:

JSONArray ja = json.getJSONObject("responseData").getJSONArray("results");
JSONObject j = ja.getJSONObject(i);
str = j.getString("titleNoFormatting");
logger.log("before: " + str); //this is just my version of println
enc_str = new String (str.getBytes(), "UTF8");
logger.log("after: " + enc_str);

Aber sowohl die 'vor' und 'nach' - Ergebnisse sind die gleichen: eine Reihe von ????'s, unabhängig davon, ob ich die Ausgabe in den server-log-Datei oder in eine HTML-Seite. Gibt es einen anderen Weg, um wieder die arabischen Zeichen und Ausgabe in einer Webseite?

Tut JSON haben unterstützende Funktionen für diese Art von problem ist vielleicht, um zu Lesen, die nicht-utf Zeichen, die sofort aus dem JSONObject?

  • Google Antwort sollte in UTF-8. Sind Sie sicher, dass das terminal, die Sie verwenden unterstützt UTF-8?
  • Was JSON-API verwenden Sie?
  • Die arabischen Zeichen, die Sie beschreiben, in Unicode dargestellt werden können, in UTF-8. Sie haben wahrscheinlich ein encoding-Problem am Ausgang, nicht am Eingang.
InformationsquelleAutor | 2009-11-16
Schreibe einen Kommentar