ich Java bin mit dieser Anfrage zu analysierenKann nicht analysieren und Nicht-UTF-8-Zeichen aus einer HTTP-Anforderung lesen Anzeigen
, die diese als Folge hat (gekürzt um 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 alle nicht Unicode für diese Angelegenheit sein könnte). Ich habe versucht, sie zurück zu Unicode wie mit etwas zu konvertieren:
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);
jedoch sowohl das ‚vor‘ und ‚nach‘ Ergebnisse sind die gleichen: eine Reihe von ???? 's, unabhängig davon, ob I-Ausgang sie in der Serverprotokolldatei oder in einer HTML-Seite. Gibt es eine andere Möglichkeit, die arabischen Zeichen zurückzubekommen und sie auf einer Webseite auszugeben?
Does JSON hat keine für diese Art von Problem unterstützen Funktionalität vielleicht, um die Nicht-utf Zeichen sofort vom JSONObject zu lesen?
Google Antwort sollte in UTF-8 sein. Sind Sie sicher, dass das von Ihnen verwendete Terminal UTF-8 unterstützt? – notnoop
Welche JSON API verwenden Sie? – BalusC
Die von Ihnen beschriebenen arabischen Zeichen ** sind ** in Unicode und können in UTF-8 dargestellt werden. Sie haben wahrscheinlich ein Codierungsproblem bei der Ausgabe, nicht bei der Eingabe. –