Я получаю обратно имена (Foursquare) мест с серверного вызова, где имена возвращенных мест могут быть на английском или не английском языке.
Предположим, что имя места находится в объекте JSON следующим образом:
{...
"name":"venue name which can be in any language"
...}
Я создаю JSONObject из этого ответа, а затем вытаскиваю название места следующим образом:
String name = jsonObject.getString("name");
Наконец, я устанавливаю текст TextView для отображения названия места следующим образом:
myTextView.setText(name);
Однако для арабских имен я нахожу, что там, где арабские символы объединены в исходном объекте JSON (как и должно быть), символы, которые отображаются в приложении (т. Е. В TextView), не пересекаются. (Я не слишком знаком с другими языками, поэтому не могу точно сказать, неправильно ли они отображаются.)
Есть ли что-то еще, что я должен сделать, чтобы правильно извлекать неанглийские имена из объекта JSON и задавать его в качестве текста TextView, или это зависит от телефона, чтобы решить, как текст будет отображаться?
Редактировать: Я попытался проанализировать ответ сервера (как предложено @bbedward), явно указав кодировку содержимого в формате UTF-8 следующим образом ...
HttpEntity httpEntity = httpResponse.getEntity();
String responseMessage = EntityUtils.toString(myHttpEntity, "UTF-8");
JSONObject jsonObject = new JSONObject(responseMessage);
... но все равно нет радости. (Арабские символы появляются, как и прежде, в словах, где они должны быть объединены, не пересекаются.) Может ли это быть телефонной вещью или нужно сделать что-то дополнительное, чтобы слова / символы правильно отображались на неанглийских языках? Возможно, серверу необходимо явно указать заголовок «Content-Type» со значением «UTF-8»?