В приложении для Android, которое я написал, есть часть, которая позволяет пользователю ввести начальное и конечное местоположение своей поездки, и возвращается маршрут маршрута. Для этого я использую службы Bing Maps REST. Я хочу, чтобы направления были на французском языке.
Пример запроса: запрос. Лучше всего это видно в браузере Chrome, Safari и Firefox позаботятся об этом. Вы можете видеть, что в направлениях есть много странных символов там, где их быть не должно. Я попытался декодировать на устройстве, выполнив:
URLDecoder.decode(obj.optString("text"), HTTP.ISO_8859_1)
который не работает (ответ остается прежним), что, я думаю, имеет смысл, поскольку он уже стал специальными символами. Я не могу использовать Windows-1252 для декодирования, потому что Android, похоже, не поддерживает это.
Пример того, что мне возвращают: Léger Encombrement
. Каким он должен быть: Léger Encombrement
.
Он также отлично работает на iPhone, но не на Android. Любые предложения о том, как я могу решить эту проблему?
Мой код в классе подключения:
public static JSONObject getJSONResult(final String url) {
try {
final HttpClient client = new DefaultHttpClient();
final HttpGet get = new HttpGet(url);
final HttpResponse responsePost = client.execute(get);
final HttpEntity resEntity = responsePost.getEntity();
boolean DEBUG = true;
if (DEBUG) {
Log.d("", "[JSON-ENV] url: " + url);
}
final String str = EntityUtils.toString(resEntity);
Log.d("connection", "response str: " + str);
if (resEntity != null) {
final JSONObject obj = new JSONObject(str);
Log.d("connection", "JSON RESPONSE IS " + obj);
return obj;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Есть ли что-то, что мне нужно добавить в мой класс подключения?
ОБНОВИТЬ:
Я добавил код синтаксического анализа JSON в формат «ISO_8859_1», как показано по этой ссылке: http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/ но я все равно получаю те же результаты...