Я создал небольшое приложение, которое ищет и отображает для меня данные, которые я получаю из Google Книг аккуратным, но простым способом.Пока все работает, но есть проблема непосредственно у источника: хотя Google правильно предоставляет мне результаты текстового поиска на немецком языке, он почему-то отображает все специальные немецкие символы (Ä, Ö, Ü и ß, вероятно) как «�»фиктивный или иногда просто "?".
Я смог подтвердить, что JSONObject, созданный из InputStream, уже содержит эти ошибки.Похоже, исходный поток от Google не читается правильно.Странно, что у меня есть кодировка UTF-8 (которая должна содержать немецкие символы), добавленная в мой InputStreamReader, но безрезультатно.
Вот процедура http-запроса, которую я использую:
public class HttpRequest {
public static String request(String urlString) throws IOException {
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
StringBuilder builder = new StringBuilder();
String inputLine;
while((inputLine = in.readLine()) != null)
builder.append(inputLine);
in.close();
return builder.toString();
}
}
Что еще может пойти не так?Я уже проверил StringBuilder, но ошибки уже есть во входных линиях, которые считываются из BufferedReader.Кроме того, мне не удалось найти какой-либо язык или конкретные настройки кодировки в официальном руководстве по API книг Google, поэтому я предполагаю, что они должны иметь универсальную кодировку, но тогда флаг "UTF-8" должен их обнаруживать или нет?