java使用htmlparser抓取网页信息,中文字符显示为“??”,如何解决?

使用云语言平台的api,解析“这是什么东西?”这句话,如果使用网页打开,会得到:这是什么东西?网页的编码为utf-8。但是使用javahtmlparser抓取网页内容就会... 使用云语言平台的api,解析“这是什么东西?”这句话,如果使用网页打开,会得到:

这 是 什么 东西 ?

网页的编码为utf-8。

但是使用java htmlparser抓取网页内容就会出现乱码。
代码如下:
String URL="http://ltpapi.voicecloud.cn/analysis/?api_key=mykey&text="+cSentence+"&pattern=ws&format=plain"
Parser yunyuyan = new Parser();
yunyuyan.setEncoding("UTF-8");
yunyuyan.setURL(URL);
for (NodeIterator i = yunyuyan.elements (); i.hasMoreNodes(); )
{
Node node = i.nextNode();

System.out.println(node.getText());
System.out.println(node.toPlainTextString());
System.out.println(node.toHtml());
System.out.println(node.toString());

}

控制台显示为:
??? ?? ?? ?? ?? ?? ?? ??
??? ?? ?? ?? ?? ?? ?? ??
??? ?? ?? ?? ?? ?? ?? ??
Txt (0[0,0],24[0,24]): ??? ?? ?? ?? ?? ?? ?? ??
展开
 我来答
wh猎人
2015-08-19 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:659万
展开全部

建议采用jsoup来抓取和解析文件。

jsoup支持css选择器。

下面是一个简单的例子:

Document doc = Jsoup.parse(in/*文件流*/, charset/*字符集*/, service/*相对地址*/);
Element e = doc.select("div[id=myid]").get(0);// 用选择器选择元素
List<Node> childs = new LinkedList<Node>(e.childNodes());
for (Iterator<Node> iter = childs .iterator(); iter.hasNext();) {
   iter.next().remove();// 移除找到元素的所有子元素

e.appendText("sometext");    // 追加新内容
String content = doc.html(); // 生成结果
追问
需要下载.jar包是吗?在哪里能下?
追答
百度搜索下jsoup,可能还有比我的例子更详细的例子。
千羽千寻online
2015-08-19 · TA获得超过645个赞
知道小有建树答主
回答量:735
采纳率:37%
帮助的人:180万
展开全部
那是因为编码不匹配,所以显示不出来
追问
如何解决?
追答
查看头部编码,统一一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式