我用SAX解析XML,发现无法取得中文,于是我在后台打印了一下取得的XML,发现取得的XML变成了
<?xml version="1.0" encoding="UTF-8"?>
<eml servername="real84" xmlns="http://api.atditu.com/api3">
<s> <code>0000001</code>
<mt>2011-05-05</mt>
<aps>
<code1>请先登陆!</code1>
</aps>
</s>
</eml>在code1字段里就是我要拿的中文,但现在变成了这样?我应该怎么处理?怎么样编码才能把XML里的中文拿出来,我的工程里
编码已经设成UTF-8了,有高手帮忙看看嘛????
<?xml version="1.0" encoding="UTF-8"?>
<eml servername="real84" xmlns="http://api.atditu.com/api3">
<s> <code>0000001</code>
<mt>2011-05-05</mt>
<aps>
<code1>请先登陆!</code1>
</aps>
</s>
</eml>在code1字段里就是我要拿的中文,但现在变成了这样?我应该怎么处理?怎么样编码才能把XML里的中文拿出来,我的工程里
编码已经设成UTF-8了,有高手帮忙看看嘛????
解决方案 »
- extjs遮罩层登陆
- 在JSP中使用幻灯片ppt文件
- 超难问题:根据输入的参数生成对应的表达式???
- javascript问题
- 代理服务器的问题
- 为什么写进数据库里的汉字是乱码,我已经用:response.setCharacterEncoding("gb2312");转码了啊?
- <jsp:.....>和<%...%>的区别?
- 简单问题,高手请进。
- 谁能告诉我bean与class的关系
- 有类似百度搜索那种输入文字后下面就出现相关选项的简单模板吗
- 从 jdk1.5 tomcat5.5 升级到 jdk1.6 tomcat6 报错 java.lang.reflect.InvocationTargetExcep
- Struts2中怎么验证一个用户是否登录
private String code1;
private String data;
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
data = new String(ch,start,length);
} @Override
public void endElement(String url, String arg1, String qName)
throws SAXException {
if(qName.equals("code")){
setCode(data);
}
if(qName.equals("code1")){
setCode1(data);
}
}
这是解析代码,就重写了这两个方法,那几个汉字是"请先登陆!"
InterfaceHandle handle = new InterfaceHandle();
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
InputSource inputSource = new InputSource(conn.getInputStream());
inputSource.setEncoding("utf-8");
parser.parse(inputSource, handle);
package wlzx.mh.sax;import java.io.IOException;import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;public class ReadAllElement {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {
// 得到sax工厂实例
SAXParserFactory factory = SAXParserFactory.newInstance();
// 得到SaxParse实例
SAXParser sp = factory.newSAXParser();
// 得到xml读取器
XMLReader reader = (XMLReader) sp.getXMLReader();
// 设置处理器
reader.setContentHandler(new ListHandle());
// 读取xml文档
reader.parse("WebRoot/dtd/book.xml");
}
}class ListHandle implements ContentHandler {
@Override
public void startElement(String uri, String localName, String name,
Attributes atts) throws SAXException {
System.out.print("<" + name);
for (int i = 0; atts != null && i < atts.getLength(); i++) {
System.out.print(" " + atts.getQName(i) + "=\"" + atts.getValue(i)
+ "\" ");
}
System.out.print(">");
} @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.print(new String(ch, start, length));
} @Override
public void endElement(String uri, String localName, String name)
throws SAXException {
System.out.print("</" + name + ">");
} @Override
public void endDocument() throws SAXException { } @Override
public void endPrefixMapping(String prefix) throws SAXException { } @Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException { } @Override
public void processingInstruction(String target, String data)
throws SAXException { } @Override
public void setDocumentLocator(Locator locator) {
} @Override
public void skippedEntity(String name) throws SAXException { } @Override
public void startDocument() throws SAXException { } @Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException { }}