我获取的内容输出后,中文全部变成"?"了,找了半天没找到好的解决乱码的办法,求高手支招
public String parse(String url){
Parser ps = new Parser();
NodeList nodes = null;
try{
ps.setURL(url);
ps.setEncoding("gb2312");
nodes = ps.extractAllNodesThatMatch(new TagNameFilter("DIV"));
}catch(Exception ex){
} return nodes.toHtml();
}

解决方案 »

  1.   

    ps.setEncoding("gb2312");
    改为utf8看看
      

  2.   

    ps.setEncoding("gb2312");
    你的文件格式是gbk吧
    试试
    ps.setEncoding("gbk");
      

  3.   

    gbk和bg2312好像兼容吧。百度首页的编码是bg2312的,但是也乱码。
      

  4.   

    parser.setEncoding(parser.getEncoding().equals("ISO-8859-1")?"gb2312":parser.getEncoding());   
    一般来说中文的用这个基本就不会乱码了
      

  5.   

    有时候没有在head中设置的时候获取的是ISO-8859-1,所以先判断一下,没有就是gb2312
      

  6.   

    http://blog.csdn.net/killtayoto/article/details/6102116对于HTMLParser 工具包我们需要修改其中的htmlparser.java文件使其适用中文的html文件分析。htmlparser.java文件中具体实现细节就不再介绍。这里主要是把protected static final String DEFAULT_CHARSET = "ISO-8859-1";修改成protected static final String DEFAULT_CHARSET = "gb2312";因为采用默认的字符集"ISO-8859-1"对含有中文的html文件进行分析的时候就会出现乱码。必须进行new String(str.getBytes("ISO-8859-1"),"GB2312")的转换工作。对于修改好的htmlparser工具包,需要重新压缩成.jar文件,放到jdk的工作环境中。