日期:2014-05-20  浏览次数:20695 次

XML序列化对象时出现的汉字乱码问题!
以下是序列化函数,当对象的字段值为汉字时输出的XML文本出现乱码,并且无法还原成对象。请高手赐教!
public static String ToXmlText(Object obj) 
{  
ByteArrayOutputStream bos= new ByteArrayOutputStream(); 
XMLEncoder encoder = new XMLEncoder(bos);  
encoder.writeObject(obj); 
encoder.flush();  
encoder.close(); 
return bos.toString();
}  


------解决方案--------------------
bos.toString();
把你返回的字符串 用UTF-8 弄一下
------解决方案--------------------
是用MyEclipse吗?你编辑区什么编码格式,
------解决方案--------------------
new String(str.getBytes("ISO8859_1"), "UTF-8");
试试
------解决方案--------------------
探讨
感谢楼上,有点进展。
new String(bos.toString().getBytes(), "UTF-8")
这样的话,偶数个汉字可以正常显示,但单数个汉字仍然不对劲。

------解决方案--------------------
打错修正:
XMLDecoder d = new XMLDecoder(
new ByteArrayInputStream(xmlS.getBytes("UTF-8")));