V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nicegoing
V2EX  ›  Java

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

  •  
  •   nicegoing · 2015-06-05 23:22:07 +08:00 · 4537 次点击
    这是一个创建于 3487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用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());
    }
    

    }

    11 条回复    2015-06-06 23:16:35 +08:00
    l12ab
        1
    l12ab  
       2015-06-05 23:36:11 +08:00
    编码? 换UTF8试试?
    wy315700
        2
    wy315700  
       2015-06-05 23:40:00 +08:00
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />


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

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

    你需要至少懂一点关于编码的知识以及gb编码的发展历史
    nicegoing
        9
    nicegoing  
    OP
       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
        10
    zonghua  
       2015-06-06 23:00:34 +08:00 via iPhone
    @Septembers gb不是国标吗?工业很多gb啊,微软竟然
    Septembers
        11
    Septembers  
       2015-06-06 23:16:35 +08:00 via Android
    @zonghua 你要问这只 @hjc4869 软狗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:00 · PVG 22:00 · LAX 06:00 · JFK 09:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.