为了账号安全,请及时绑定邮箱和手机立即绑定

JTidy 解析 HTML 中文 乱码问题

JTidy 解析 HTML 中文 乱码问题

慕的地8271018 2018-12-07 04:08:48
代码如下 其中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) { } }
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

我是做.net的,不知道跟你们java有没有区别,就权作为建议把;

首先要保证页面的格式是不是UTF-8,然后网站的配置文件里面responseEncoding以及requestEncoding是不是都是设置的为utf-8 ;

查看完整回答
反对 回复 2018-12-16
  • 1 回答
  • 0 关注
  • 716 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号