Najczęściej zadawane pytania na temat XStream - jego domyślny analizator składni nie zachowuje kodowania dokumentu UTF-8 i należy podać własny koder. Jak to zrobić?Jak kodować UTF-8 przy użyciu środowiska XStream?
Dzięki!
Najczęściej zadawane pytania na temat XStream - jego domyślny analizator składni nie zachowuje kodowania dokumentu UTF-8 i należy podać własny koder. Jak to zrobić?Jak kodować UTF-8 przy użyciu środowiska XStream?
Dzięki!
Utwórz program zapisujący z kodowaniem UTF-8. Przekaż skrypt jako argument do metody XXSX toXML.
XStream xstream = new xStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(outputStream, "UTF-8");
xStream.toXML(object, writer);
String xml = outputStream.toString("UTF-8");
Możesz również użyć tego Writera do dołączenia Deklaracji XML.
writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
xStream.toXML(object, writer);
Innym rozwiązaniem byłoby zainicjowanie obiektu XStream za pomocą odpowiedniego kodowania za pośrednictwem sterownika. Korzystanie z DomDriver to będzie wyglądać:
XStream xstream = new XStream(new DomDriver("UTF-8"));
The (domyślnie) PrettyPrintWriter zostanie owinięty przez OutputStream z prawidłowym kodowaniu. nie mogli Państwo dodać UTF-8 nagłówek tędy jednak ...
Ale DomDriver działa wolno. –
Z obecnej wersji XStream @ przykład Jeromy za wyglądałby następująco:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(stream, "UTF-8");
HierarchicalStreamWriter xmlWriter = new PrettyPrintWriter(writer);
xstream.marshal(object, xmlWriter);
return new String(stream.toByteArray(), "UTF-8");
+1 dzięki - właśnie natknął się to & nie można go łatwo znaleźć w dokumentach. – davek
dziękuję, to tylko rozwiązało mój problem. – Jaycee