一个关于JDOM的问题,100分送上。

beloved 2002-03-21 08:25:00
为什么我用jdom向xml中天家新接点的时候<?xml version='1.0' encoding='GB2312'?>
修改完了就成了<?xml version='1.0' encoding='UTF-8'?>了呢?郁闷,有没有什么setencoding的呀?jdom.org老慢老慢的,sigh!
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangwenyou 2002-04-26
  • 打赏
  • 举报
回复
org.jdom.output.XMLOutputter xmlOut;
document.setDocType( null ); // 不产生DocType PI
xmlOut = new org.jdom.output.XMLOutputter( " ", true, "GB2312" );
xmlOut.setTextNormalize( true );

FileOutputStream out = new FileOutputStream( name );
xmlOut.output( document, out );
out.close();
Tomcat4 2002-04-26
  • 打赏
  • 举报
回复
XMLOutputter xop = new XMLOutputter("\t",true,"gb2312");
xop.output(doc,out);
beloved 2002-03-21
  • 打赏
  • 举报
回复
难道我写了这么多程序要全部都改了?不是吧。
有没有更好的办法?
snowredfox 2002-03-21
  • 打赏
  • 举报
回复
这是由编码问题引起的。XML标准规定,XML分析器必须支持“UTF-8”和“UTF-16”编码,而且必须能够自动区分这两种编码的文件,对于其他编码(包括常用的中文编码“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含编码声明,分析器则按照声明的编码进行处理,否则就按照识别结果进行处理(识别的结果总是“UTF-8”和“UTF-16”中的一种)。因此,如果XML文件的编码在这两种之外,你必须在XML文件前加上编码声明,如:<?xml version="1.0" encoding="gb2312"?>就表示XML文件的编码是“gb2312”。

  现有的XML分析器大多不支持中文编码“GB2312”或“BIG5”,因此无法读取包含中文的XML文件。你可以使用支持中文编码的分析器,如MSXML,IBMJAVA4C,IBMJAVA4J等进行XML分析。你也可以用内码转换工具,将编码转换为“UTF-8”或“UTF-16”后进行解析,然后将解析结果转换回原来的编码。

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧