浏览 2053 次
锁定老帖子 主题:JOX解决乱码和输出时间格式的方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-06
1.时间格式的设置 JOXDateHandler会使用系统设置的com.oce.wutka.dateFormat属性,这个属性可能是在dtdparser113.jar中设置的,因为没有源码所以只是猜的。 在你的代码中加入System.setProperty("com.oce.wutka.dateFormat",format);来设置你希望的时间格式。 2.乱码 JOXBeanOutputStream的构造函数可以指定输出的XML文件头的encoding值,但是对内容没有影响,其实我想这也它的一个bug,原因是JOXBeanOutputStream类的writeString(String str)有问题。 public void writeString(String str) throws IOException { write(str.getBytes()); } 解决办法是继承JOXBeanOutputStream,然后重写这个方法。 public void writeString(String str) throws IOException { write(str.getBytes(encoding)); } 还有另一种方式,不用JOXBeanOutputStream,使用JOXBeanDOM JOXBeanDOM dom = new JOXBeanDOM(false); Document beanToDocument = dom.beanToDocument("MarkTest", b); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); transformer.setOutputProperty("encoding", "GB2312"); transformer.setOutputProperty("indent", "GB2312"); DOMSource source = new DOMSource(beanToDocument); StreamResult result = new StreamResult(new OutputStreamWriter( new FileOutputStream(new File("bean31.xml")), "GB2312")); transformer.transform(source, result); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-06
DOM模式做的不错么. 我们也用这个不少. 问题早就解决了.
不过, 还是不放心这东西, 一个国际化都考虑的不好的东西, 还是比较担心的. |
|
返回顶楼 | |
发表时间:2009-03-09
sdh5724 写道 DOM模式做的不错么. 我们也用这个不少. 问题早就解决了. 不过, 还是不放心这东西, 一个国际化都考虑的不好的东西, 还是比较担心的. 他可能就没想整复杂,力求简单 |
|
返回顶楼 | |