Кодировка XmlSerializer

1

Мне нужно поместить некоторые данные из HashMap в xml. Но есть проблема с кодировкой Windows-1251 - она возвращает xml с тегом типа "& # 1090 *; & # 1088; & # 1080 *;" и т.д. Вот код с тестовым hashMap с значениями cp1251:

public String getValues() {
    XmlSerializer serializer = Xml.newSerializer();
    OutputStream outputStream = new ByteArrayOutputStream();

    HashMap<String, String> map = new HashMap<String, String>();
    map.put("one", "один");
    map.put("two", "два");
    map.put("three", "три");

    try {
        serializer.setOutput(outputStream, "Windows-1251");
        serializer.startTag("", "fields");
        for (String key : map.keySet()) {
            serializer.startTag("", key);
            serializer.text(map.get(key));
            serializer.endTag("", key);
        }
        serializer.endTag("", "fields");
        serializer.endDocument();
    } catch (Exception e) {
        Log.e(TAG, e.toString);
    }
    return outputStream.toString();
}

Как правильно установить кодировку? благодаря

Теги:
encoding

1 ответ

0

Я нашел решение (я использовал неправильную кодировку):

serializer.setOutput(outputStream, "UTF-8");

Теперь все работает отлично

Ещё вопросы

Сообщество Overcoder
Наверх
Меню