2014-11-17 5 views
1

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

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(); 
} 

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

ответ

0

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

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

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