jsoup 获取 html 页面乱码,所有的“囧”字全部变成了“?”,求解答

2015-06-05 23:22:07 +08:00
 nicegoing

用JSOUP抓取该网页: http://it.ithome.com/category/47_1.html
其他字符都正常,就是“囧”乱码了,求解答。,比如“佩戴Apple Watch的一天:?事太多”
public class Main {

public static void main(String[] args) throws IOException {
    Document jsoup = Jsoup.connect("http://it.ithome.com/category/47_1.html").get();
    System.out.println(jsoup.html());
}

}

4337 次点击
所在节点    Java
11 条回复
l12ab
2015-06-05 23:36:11 +08:00
编码? 换UTF8试试?
wy315700
2015-06-05 23:40:00 +08:00
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />


gb2312的。。
zonghua
2015-06-06 00:48:05 +08:00
编码!!
zonghua
2015-06-06 00:49:10 +08:00
@wy315700 使用jsoup获取一个表格有什么奇技淫巧?用什么来装?
FrankFang128
2015-06-06 00:49:33 +08:00
我还以为你说的是 jsonp,原来是 jsoup,长得好像。 XD
imn1
2015-06-06 01:12:03 +08:00
作为开发人员,应该了解一下gb2312和gbk的区别
至少知道这两者用于显示和用于程序编码两种情况的适用范围
Septembers
2015-06-06 01:46:16 +08:00
@imn1 GBK是微软基于GB2312拓展的超集
SoloCompany
2015-06-06 02:19:18 +08:00
没用过jsoup
你可以尝试一下给作者发个issue让他们自动编码转换 gb2312 / gbk -> gb18030
或者自己去发pr

没错微软就是这么干的
网站为啥这么声明,自然是为了让它们可以兼容老掉牙的系统

你需要至少懂一点关于编码的知识以及gb编码的发展历史
nicegoing
2015-06-06 09:06:23 +08:00
@l12ab
@wy315700
@zonghua
@imn1
@FrankFang128
@Septembers
@SoloCompany

谢谢,编码换成GBK正常显示了
Document doc = Jsoup.parse(new URL(urlStr).openStream(), "gbk", urlStr);
System.out.println(doc);
zonghua
2015-06-06 23:00:34 +08:00
@Septembers gb不是国标吗?工业很多gb啊,微软竟然
Septembers
2015-06-06 23:16:35 +08:00
@zonghua 你要问这只 @hjc4869 软狗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196440

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX