Я пытаюсь получить строку (в формате JSON) из URL-адреса и использовать ее как объект Json. Я теряю кодировку UTF-8, когда конвертирую строку в JSONObject.
Это функция, которую я использую для подключения к URL-адресу и получения строки:
private static String getUrlContents(String theUrl) {
StringBuilder content = new StringBuilder();
try {
URL url = new URL(theUrl);
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
content.append(line + "\n");
}
bufferedReader.close();
} catch(Exception e) {
e.printStackTrace();
}
return content.toString();
}
Когда я получаю данные с сервера, следующий код отображает правильные символы:
String output = getUrlContents(url);
Log.i("message1", output);
Но когда я конвертирую выходную строку в JSONObject, персидские символы становятся вопросительными знаками, такими как ??????. (messages — это имя массива в JSON)
JSONObject reader = new JSONObject(output);
String messages = new String(reader.getString("messages").getBytes("ISO-8859-1"), "UTF-8");
Log.i("message2", messages);