1

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

谁能告诉我这个Xstream问题还是文件问题,我需要用某种编码来写它。

提前谢谢大家!

4

2 回答 2

2

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

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

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

XStream 架构基于 IO Readers 和 Writers,而 XML 声明则由 XML 解析器负责。自 1.3 版以来,所有 HierarchicalStreamDriver 实现都尊重编码,但前提是您提供了 InputStream。如果 XStream 使用 Reader,您必须自己使用适当的编码初始化 reader,因为现在执行编码是 reader 的任务,并且没有 XML 解析器可以更改 Reader 的编码,并且 XML 标头中的任何编码定义都将被忽略.

于 2012-05-09T16:36:24.803 回答
0

查看Xstream 常见问题解答并搜索“编码”。看起来您必须提供自己的编写器才能获得非默认本地编码。

正如上面的评论,这个问题涵盖了它:

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

于 2012-05-09T16:36:26.343 回答