代码如下
其中responseString是通过HttpClient返回的HTML页面内容,包含中文,UTF-8,在log中显示正常;
这段代码在一个Web应用中被执行。
1, 当我直接在eclipse,把Web应用放tomcat里运行时,两次trace打印出来的内容都能正常显示中文内容;
2, 当我把Web应用打成war包,入到服务器(其实就是我的电脑本机,脱离eclipse)运行时,两次trace,第一次打印出来的中文正常显示,但第二次却是乱码。
所以我觉得很诡异,同样的一段代码,在不同的方式运行出不同的结果。不知道是不是JTidy会依赖什么环境变量?
我用的是:eclipse Helios Service Release 1, tomcat 7(与这个无关,我也试过6),操作系统是Win7 英文。
百思不得其解,救解!
ByteArrayInputStream in = null;
try {
in = new ByteArrayInputStream(responseString.getBytes());
logger.trace("@@@@@@@ ByteArrayInputStream -> \n\n" + responseString + "\n\n");
Tidy tidy = new Tidy();
tidy.setQuiet(true);
tidy.setShowWarnings(false);
tidy.setInputEncoding("UTF-8");
org.w3c.dom.Document dom = tidy.parseDOM(in, null);
Document doc = new DOMReader().read(dom);
logger.trace("@@@@@@@ SAXReader -> \n\n" + doc.asXML() + "\n\n");
} finally {
try {
in.close();
} catch (IOException ignore) {
}
}
心有法竹
相关分类