В приложении для Android, которое я написал, есть часть, которая позволяет пользователю вводить начальное и конечное местоположение своей поездки, и маршрут маршрута возвращается. Я использую сервисы BEST 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 / но я все равно получаю те же результаты ...