XStream의 FAQ에 따르면 기본 파서는 UTF-8 문서 인코딩을 보존하지 않으며 자체 파서를 제공해야합니다. 어떻게하면됩니까?XStream 프레임 워크를 사용하여 UTF-8을 어떻게 인코딩합니까?
감사합니다.
XStream의 FAQ에 따르면 기본 파서는 UTF-8 문서 인코딩을 보존하지 않으며 자체 파서를 제공해야합니다. 어떻게하면됩니까?XStream 프레임 워크를 사용하여 UTF-8을 어떻게 인코딩합니까?
감사합니다.
UTF-8 인코딩으로 작성기를 작성하십시오. XStream의 toXML 메서드에 인수로 Writer를 전달합니다.
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");
또한 XML 작성자를 사용하여 XML 선언을 포함 할 수도 있습니다.
writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
xStream.toXML(object, writer);
또 다른 해결책은 드라이버를 통해 올바른 인코딩으로 XStream 개체를 시작하는 것입니다.
XStream xstream = new XStream(new DomDriver("UTF-8"));
(기본값) PrettyPrintWriter
올바른 인코딩으로 OutputStream에 래핑됩니다처럼이 보일 것 DomDriver 사용. 이 같을 것이다 제로미의 예 @, XStream과의 현재 버전과 함께 ... 그러나이 방법그러나 DomDriver가 느립니다. –
을 UTF-8 헤더를 추가 할 수 없습니다 :
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");
한 덕분에 - 그냥 & 우연히 발견 문서에서 쉽게 찾을 수 없습니다. – davek
고마워, 그냥 내 문제를 해결. – Jaycee