Castor生成XML文件时的中文问题
来源:互联网 发布:网络购彩正规网站 编辑:程序博客网 时间:2024/05/17 08:33
今天需对一旧系统的功能进行扩展,旧系统使用Castor来操作XML,相应的JavaBean都提供。
而且发现我要用的JavaBeab:DeviceTable提供了 现成的
public void marshal(Writer out) throws ValidationException, MarshalException { }
这样一个函数,于是,代码顺手捏来,
xmlreader = new InputStreamReader(new FileInputStream(xmlfilename));
devicetable = (DeviceTable) Unmarshaller.unmarshal(DeviceTable.class, xmlreader);
和
xmlwriter =new OutputStreamWriter(new FileOutputStream(xmlfilename));
devicetable.marshal(xmlwriter);
可是发现其中的一个属性值中的中文(LabelFont="方正魏碑简体"),在重新生成的XML文件中变成了乱码,而且这个XML文件中的encoding="UTF-8";而原始XML文件中是:encoding="gb2312";
通过跟踪,发现读出来了这个属性是正确的,于是我就怀疑起DeviceTable.marshal()方法了,通过反编译一看,哦:
public void marshal(Writer out)
throws ValidationException, MarshalException {
Marshaller.marshal(this, out);
}
原来这么省,Castor的Marshaller.marshal() 默认“UTF-8”,那就自己来罗,
xmlreader = new InputStreamReader(new FileInputStream(xmlfilename), "gb2312");
devicetable = (DeviceTable) Unmarshaller.unmarshal(DeviceTable.class, xmlreader);
......
xmlwriter =new OutputStreamWriter(new FileOutputStream(xmlfilename), "gb2312");
Marshaller marshaller = new Marshaller(xmlwriter);
marshaller.setEncoding("gb2312"); //关键
marshaller.marshal(devicetable);
哦,OK!
- Castor生成XML文件时的中文问题
- 一个使用自定义命名空间的Schema文件,xml文件和castor生成的java代码的例子
- DOM4J生成XML文件的中文乱码问题
- Castor进行XML数据绑定时的一点问题
- dom4j生成xml文件的中文乱码
- dom4j生成xml文件的中文乱码
- dom4j中生成xml的中文问题
- Castor XML
- Castor XML
- jdom解决中文乱码问题 JAVA生成xml文件
- dom4j生成xml文件,解析后出现中文乱码问题
- 使用dom4j 读取xml文件时的中文问题(转)
- 使用dom4j 读取xml文件时的中文问题
- Castor的XML数据绑定应用
- Castor的XML数据绑定应用
- Castor的XML数据绑定应用
- Castor的XML数据绑定应用
- Castor-解析xml的另外一种方法
- 今天火箭打得真爽
- 补充:学习理论的意义
- 写下我在CSDN的第一篇BLOG,也是我这一生中的第一篇BLOG。。。
- C++ FAQ阅读笔记[3]--内联函数
- 第二章 认识.NET Framework
- Castor生成XML文件时的中文问题
- google && baidu 2004年关键字排行 之炸弹篇 Bomb ^^~~ | 绿色学院 - Green Institute - 不听人间乐 - 想得到 - 做得到 - Xoops
- 表单中提交文章长度问题
- 从今天起决定每天写篇BLOG,希望能坚持下去.
- 第三章 .NET语言
- 公布《.NET软件开发技术基础》全书目录
- [转]防止全局钩子的侵入
- 第四章 编写ASP.NET页面
- [转贴]Yacc 与 Lex 快速入门