utf-8的xml流怎么解析 你的意思是utf-8编码的中文会出问题?这个是不会的,你在解析之前把用native2ascii转化一下,然后就不会有问题了轧面显示的时候用utf-8编码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是,我的xml是别人生成的,存储格式就是utf-8,我通过http得到后不能通过DOM直接解析,解析的时候会报根文件错误,不只是乱码的问题,用utrl edit来看的话,头<?.....?>这块的格式就不对。如果时gb2312的就不存在问题。 MSXML DOM中加载加载 XML文档的两个主要方法是 LoadXML 方法和 Load 方法,其中Load 方法实现以下算法,用于确定 XML 的字符编码或字符集。 1.如果 Content-Type HTTP 标题定义了字符集,该字符集则替代 XML 文档本身的所有内容。因为没有 HTTP 标题,所以这显然不适用于 SAFEARRAY 和 IStream 机制。2.如果有双字节 Unicode 字节次序标志,则它假设编码是 UTF-16。它既可处理大 endian,也可处理小 endian。3.如果有四字节 Unicode 字节次序标志 (0xFF 0xFE 0xFF 0xFE),则它假设编码是 UTF-32。它既可处理大 endian,也可处理小 endian。4.否则,它假设编码是 UTF-8,除非它用指定其他一些字符集的编码属性(如 ISO-8859-1、Windows-1252、Shift-JIS 等),找到 XML 声明。 不知道这个规则是否也适用Java环境下的XML文档解析,仅作参考http://www.contnew.com/tech/web/html/2004/9/26_150311_01.html 关键是IO读操作,既然源文件格式已经是utf-8,读文件的时候要设定编码,所以要用Reader对象读举例:new InputStreamReader(new FileInputStream(new File(xqfile)),"utf-8"); 这样吧,我详细的说一说我先的情况. 我要解析的xml是由另外的程序生成的.编码是utf-8(在ie里打开正常,但是通过UltraEdit打开就不正常,有乱码) 我现在通过DOM解析此xml,但总是报错。解析方法如下。 public static Document readFile(File file) throws Exception { Document doc; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); return doc; } catch (SAXParseException ex) { throw (ex); } catch (SAXException ex) { Exception x = ex.getException(); throw ( (x == null) ? ex : x); } } 我知道是编码的问题,但我不知道怎么转化。我曾经通过InputStreamReader和OutputStreamWriter将文件落为gb2312的。 这时中文的乱码问题解决了,但在xml文件的前端多了一个"?"号。?<?xml version="1.0" encoding="utf-8" ?> 关于utf-8和xml的帖子我找了不少,但都是只言片语,我也试过很多其他的办法,还是不能成功解析。所以请各位帮帮忙,给点详细的代码和思路。 把XML读出来到StringBuffer中, 把哪一行改为gbk, 再解析流. 昨天写给别人的代码,试试吧,能解析csdn 返回的RSS是utf-8的Document doc=null;try {DOMParser parser=new DOMParser();parser.parse("http://www.csdn.net/Feed.aspx?Column=95dea035-fce0-42ad-b150-90f11eb66456");doc=parser.getDocument();NodeList nl=doc.getElementsByTagName("rss");System.out.println(nl.getLength());System.out.println(nl.item(0).getAttributes().getNamedItem("version"));//your code here...}catch (Exception ex1) {ex1.printStackTrace();} jdbc 预处理 in 的问题 各位老兄,我的凌波在WIN7下怎么用?(在线急等!!!) 如何限制ip 问一个问题 请教关于weblogic UTF编码转为GBK编码 我用的是TOMCAT5.0,servlet编译生成的字节码文件要放在哪个目录下才能正常运行? java中怎么得到当前程序的执行路径? JBuilderX+Weblogic8.1运行struts时出错,请问怎样解决?(内详,在线等) 请教:从tomcat 连接SUN 的j2ee server时jndi.properties应该怎么写? 我的JDBC死活配不上 请问一下:java和.net在开发和使用过程当中会发生一些冲突吗?
如果时gb2312的就不存在问题。
2.如果有双字节 Unicode 字节次序标志,则它假设编码是 UTF-16。它既可处理大 endian,也可处理小 endian。
3.如果有四字节 Unicode 字节次序标志 (0xFF 0xFE 0xFF 0xFE),则它假设编码是 UTF-32。它既可处理大 endian,也可处理小 endian。
4.否则,它假设编码是 UTF-8,除非它用指定其他一些字符集的编码属性(如 ISO-8859-1、Windows-1252、Shift-JIS 等),找到 XML 声明。 不知道这个规则是否也适用Java环境下的XML文档解析,仅作参考http://www.contnew.com/tech/web/html/2004/9/26_150311_01.html
举例:
new InputStreamReader(new FileInputStream(new File(xqfile)),"utf-8");
我要解析的xml是由另外的程序生成的.编码是utf-8(在ie里打开正常,但是通过UltraEdit打开就不正常,有乱码)
我现在通过DOM解析此xml,但总是报错。解析方法如下。
public static Document readFile(File file) throws Exception {
Document doc;
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
return doc;
}
catch (SAXParseException ex) {
throw (ex);
}
catch (SAXException ex) {
Exception x = ex.getException();
throw ( (x == null) ? ex : x);
}
}
我知道是编码的问题,但我不知道怎么转化。我曾经通过InputStreamReader和OutputStreamWriter将文件落为gb2312的。
这时中文的乱码问题解决了,但在xml文件的前端多了一个"?"号。?<?xml version="1.0" encoding="utf-8" ?>
关于utf-8和xml的帖子我找了不少,但都是只言片语,我也试过很多其他的办法,还是不能成功解析。所以请各位帮帮忙,给点详细的代码和思路。
是utf-8的
Document doc=null;
try {
DOMParser parser=new DOMParser();
parser.parse("http://www.csdn.net/Feed.aspx?Column=95dea035-fce0-42ad-b150-90f11eb66456");
doc=parser.getDocument();
NodeList nl=doc.getElementsByTagName("rss");
System.out.println(nl.getLength());
System.out.println(nl.item(0).getAttributes().getNamedItem("version"));
//your code here...}
catch (Exception ex1) {
ex1.printStackTrace();
}