j'utilise Java pour analyser cette demandene peut pas analyser et afficher des caractères non-UTF8 lecture d'une requête http
qui a pour conséquence, cette (tronquée par souci de concision) fichier JSON :
{"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}
Mon problème réside dans les caractères arabes sont revenus (qui pourrait être un non-unicode pour cette matière). J'ai essayé de les reconvertir en unicode en utilisant quelque chose comme:
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);
Cependant, le « avant » et « après » les résultats sont les mêmes: un ensemble de l ', que la sortie I ???? dans le fichier journal du serveur ou dans une page HTML. Existe-t-il un autre moyen de récupérer les caractères arabes et de les afficher dans une page Web?
Est-ce que JSON a des fonctionnalités de support pour ce genre de problème peut-être afin de lire les caractères non-utf directement à partir de JSONObject?
La réponse de Google devrait être en UTF-8. Etes-vous sûr que le terminal que vous utilisez supporte UTF-8? – notnoop
Quelle API JSON utilisez-vous? – BalusC
Les caractères arabes que vous décrivez ** sont ** en Unicode et peuvent être représentés en UTF-8. Vous avez probablement un problème d'encodage en sortie, pas en entrée. –