再次请教问题!!!来者同样有分! come in please! 帮忙的再给你555分!

tiger_wkh52741 2005-09-08 06:07:46
问题:
如何解决xml中,中文乱码的问题!

xml文件示例如下:
<?xml version="1.0" encoding="GB2312"?>
<root>
<Record>
<Item Name="Product_Code">1011</Item>
<Item Name="Product_Name">AC-DC 哈哈哈</Item>
</Record>
<Record><Item Name="Product_Code">2333</Item>
<Item Name="Product_Name">RRR- 测试</Item>
</Record>
<Record><Item Name="Product_Code">2333</Item>
<Item Name="Product_Name">REW- 测试dd</Item>
</Record>
</root>

通过java的dom来解析上面的xml,但是解析出来的原中文数据是乱码,甚是头痛!
查了一些资料,都说改掉<?xml version="1.0" encoding="GB2312"?> 这里就能解决,
但我测试后,仍然是乱码,哪位高手帮忙解决一下!
...全文
123 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiger_wkh52741 2005-09-09
  • 打赏
  • 举报
回复
hehe ,to jFresH_MaN(Contributing to Eclipse):非常感谢你的解答,不过我的问题是这个所谓的xml文件其实是被转换成流的形式,然后用dom去解析它,这个问题我解决了,仅一个方法之差!唉.在下实在是知识浅薄哦!!

同时仍然谢谢所有光顾的朋友,结贴送分咯!
simon0512 2005-09-08
  • 打赏
  • 举报
回复
jFresH_MaN 2005-09-08
  • 打赏
  • 举报
回复
public class TestClass {

public static Document getXMLDocument() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
}

Document doc = null;
try {
doc = db.parse("C:\\test.xml");
} catch (SAXException e) {
e.printStackTrace();
} catch (DOMException dom) {
dom.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
return doc;
}

public static String getElementText(Element e) {
NodeList nl = e.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
if (n instanceof org.w3c.dom.Text) {
return n.getNodeValue();
}
}
return "";
}

public static void main(String[] args) {
Document doc=getXMLDocument();
Element root=doc.getDocumentElement();
NodeList rnl = root.getChildNodes();
for (int j = 0; j < rnl.getLength(); j++) {
Node rNode = rnl.item(j);
if (rNode.getNodeType() == Node.ELEMENT_NODE) {
if (rNode.getNodeName().equals("Record")) {
NodeList iNL = rNode.getChildNodes();
for (int k = 0; k < iNL.getLength(); k++) {
Node itemNode = iNL.item(k);
if (itemNode.getNodeType() == Node.ELEMENT_NODE) {
if (itemNode.getNodeName().equals("Item")) {
Element item=(Element)itemNode;
if(item.getAttribute("Name").equals("Product_Name")) {
System.out.println(getElementText(item));
}
}
}
}
}
}
}
}
}
jFresH_MaN 2005-09-08
  • 打赏
  • 举报
回复
刚才我测试了一下,用EditPlus建立了同样内容的xml
使用非常简单的DOM解析这个文件,结果没有乱码啊。
奇伢 2005-09-08
  • 打赏
  • 举报
回复
用jdom好像不会出现这样的问题吧。
nkat 2005-09-08
  • 打赏
  • 举报
回复
不是很明白,帮你顶一下吧
kingofhawks 2005-09-08
  • 打赏
  • 举报
回复
没做过,帮顶.
asa516 2005-09-08
  • 打赏
  • 举报
回复
不懂,帮你顶一下
nintha 2005-09-08
  • 打赏
  • 举报
回复
顶一下,用的是哪个DOM啊?
wangyuqin 2005-09-08
  • 打赏
  • 举报
回复
我用jdom做过,没有乱码的,非常简单的
王洲 2005-09-08
  • 打赏
  • 举报
回复
顶一下
superslash 2005-09-08
  • 打赏
  • 举报
回复
ding
mengze1981 2005-09-08
  • 打赏
  • 举报
回复
顶一下
tiger_wkh52741 2005-09-08
  • 打赏
  • 举报
回复
来捧场的朋友,也可以去http://community.csdn.net/Expert/topic/4255/4255609.xml?temp=.7560388 这里顶一下,同样有分!

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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