Я пытаюсь прочитать информацию о погоде из API Google Weather.Umlauts, возвращенный API Google Weather API, не отображается правильно
Мой код выглядит примерно так:
String googleWeatherUrl = "http://www.google.de/ig/api?weather=berlin&hl=de";
InputStream in = null;
String xmlString = "";
String line = "";
URL url = null;
try {
url = new URL(googleWeatherUrl);
in = url.openStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, UTF_8));
while ((line = bufferedReader.readLine()) != null) {
xmlString += line;
}
} catch (MalformedURLException e) {
} catch (IOException e) {
}
DocumentBuilder builder = null;
Document doc = null;
try {
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource source = new InputSource(new StringReader(xmlString));
doc = builder.parse(source);
} catch (ParserConfigurationException e) {}
catch (FactoryConfigurationError e) {}
catch (SAXException e) {} catch (IOException e) {}
В основном он работает как шарм, но когда возвращаемые данные содержат умляуты (ö, ü, ä, ...), то эти символы не отображается должным образом. В Eclipse, а также в браузере или в соответствующем исходном коде они отображаются как прямоугольники (или что-то подобное странное).
На самом деле уже переменная xmlString содержит поврежденные умлауты.
У кого-нибудь есть идея?
Спасибо и наилучшими пожеланиями, Пол
Вы должны сказать нам, где эти символы потерялся. «XmlString» все еще содержит их? – home
хороший звонок. Я отредактировал вопрос. xmlString уже поврежден ... – Paul
Ответ от сервера в ISO-8859-1 (отличная работа, Google), а не UTF-8. Вот почему это было неправильно. Я думаю, вам не нужно устанавливать кодировку вручную, это, вероятно, будет ОК из коробки. Если это не так, у вас нет выбора, кроме как использовать [HttpURLConnection] (http://docs.oracle.com/javase/1.4.2/docs/api/java/net/HttpURLConnection.html) получить заголовок Content-Type, проанализируйте кодировку, а затем установите ее соответствующим образом. Я просто надеюсь, что ребята из Sun действительно подумали об этом. –