<?xml version="1.0" encoding="UTF-8"?>
Я приведу только некоторые примеры из кодов, которые я считаю значимыми.кодировка символов от XML до Java
Я читаю некоторую информацию из одного XML с помощью запроса HTTP, что-то вроде этого:
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
если я Печатает строку XML на экране я могу увидеть некоторые проблемы с уже
кодификациейзатем вернуть документ у меня есть этот
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
Хотя я правильно извлечение информации из часов ttp, у меня возникают проблемы с идентификацией символов, когда я показываю данные.
Я уже пытался сделать is.setEncoding ("UTF-8") но не работал.
Спасибо за ответ, не возможно, что проблема связана с XML, а не с кодом? И вместо того, чтобы делать EntityUtils.toString, я могу использовать то, что вы предложили, но тогда, что я должен добавить в конструктор этого объекта? is.setCharacterStream (новый StringReader (xml)); // раньше, когда это было со строкой is.setCharacterStream (???); // Я не знаю, какой конструктор я могу использовать с массивом байтов. – unpix
@unpix Используйте конструктор 'InputSource (InputStream)' (http://docs.oracle.com/javase/7/docs/api/org/xml/sax/InputSource.html#InputSource%28java.io.InputStream % 29). Если вы начинаете с байтового массива, вы можете использовать [ByteArrayInputStream] (http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayInputStream.html#ByteArrayInputStream%28byte []% 29). – McDowell
Спасибо, может быть, это сработает, но я уже нашел самое простое решение – unpix