我有一个简单的 java String 对象,想使用 XStream 对其进行序列化/反序列化。序列化效果很好,但是正如这个字符串用俄语写的那样,在反序列化之后,我发现字符串的编码被破坏了。
谁能告诉我这个Xstream问题还是文件问题,我需要用某种编码来写它。
提前谢谢大家!
我认为这是因为使用较新的 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 标头中的任何编码定义都将被忽略.