2012-05-09 82 views
1

我有一个简单的java String对象,并想使用XStream对其进行序列化/反序列化。序列化效果很好,但是当这个字符串用俄语编写时,在反序列化之后,我发现字符串的编码被破坏了。XStream编码破解

有人可以告诉我,如果这个问题的Xstream或文件的问题,我需要写在一定的编码。

谢谢大家提前!

+0

http://stackoverflow.com/questions/1211624/how-do-i-encode-utf-8-using-the -xstream-framework可能会有所帮助 –

回答

2

我认为这是因为在较新的XStream版本中,您需要将解码委托给您的XML流的读取器,以便在解析时使用正确的编码方案对其进行正确解码。

看看这个,它可能会有所帮助:http://x-stream.github.io/faq.html

为什么XStream的不尊重在XML声明中的编码?

XStream架构基于IO读取器和写入器,而XML声明是XML解析器的责任。所有HierarchicalStreamDriver实现都尊重版本1.3以后的编码,但只有在您提供InputStream时才适用。如果XStream使用Reader,则必须自己使用适当的编码初始化阅读器,因为现在读者的任务是执行编码,并且XML解析器不能更改Reader的编码,并且XML标头中的任何编码定义都将被忽略。