使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
問(wèn)題:我用dom將數(shù)據(jù)寫(xiě)到xml中 設(shè)置xml文件的編碼格式是gbk時(shí)再dos下運(yùn)行jar包中文會(huì)出現(xiàn)亂碼
如下:
代碼如下:
StringWriter strWtr = new StringWriter();
StreamResult strResult = new StreamResult(strWtr);
TransformerFactory tfac = TransformerFactory.newInstance();
try {
Transformer t = tfac.newTransformer();
// t.setOutputProperty(OutputKeys.ENCODING, "GBK");
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty(OutputKeys.METHOD, "xml"); // xml, html,// text
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", spaceNum);
Element element = doc.getDocumentElement();
t.transform(new DOMSource(element), strResult);
} catch (Exception e) {
e.printStackTrace();
// ToolKit.writeLog(this.getClass().getName(), "轉(zhuǎn)換XML異常,參數(shù)為:" + doc, e);
}
result = strResult.getWriter().toString();
至于是因?yàn)樵?#xff0c;我也不知道,關(guān)于操作XML ,有dom4j這么好用的包,你不用,干啥要用DOM這么原生。
這個(gè)我修改把程序環(huán)境編碼換成了GBK編碼,甚至把myeclipse的編碼也換成了GBK編碼,問(wèn)題還是沒(méi)有解決。
最后把dom轉(zhuǎn)換成jdom就解決了,
轉(zhuǎn)換代碼如下:
/*
把dom轉(zhuǎn)換成jdom
*/
DOMBuilder builder = new DOMBuilder();
org.jdom.Document jdomDoc = builder.build(doc); //doc:已經(jīng)創(chuàng)建好的dom
Format format=Format.getPrettyFormat();
format.setEncoding("GBK");
XMLOutputter output=new XMLOutputter();
output.setFormat(format);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
output.output(jdomDoc, baos);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
result=baos.toString(); //轉(zhuǎn)換成字符串輸出再運(yùn)行jar包,就沒(méi)問(wèn)題了
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: signature=806a32b3c9
- 下一篇: Html制作知识库管理系统,HTML 编