如何使用XStream框架编码UTF-8?

问题描述:

根据XStream的常见问题解答,其默认解析器不保留UTF-8文档编码,并且必须提供自己的编码器.如何做到这一点?

Per XStream's FAQ its default parser does not preserve UTF-8 document encoding, and one must provide their own encoder. How does one do this?

谢谢!

使用UTF-8编码创建Writer.将Writer作为参数传递给XStream的toXML方法.

Create a Writer with UTF-8 encoding. Pass the Writer as an argument to XStream's toXML method.

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");

您还可以使用该Writer来包含XML声明.

You may also use that Writer to include the XML Declaration.

writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
xStream.toXML(object, writer);