HTML中的Java GB2312字符串无法正确显示

时间:2016-01-11 20:08:31

标签: java encoding

我正在尝试从中文网站读取HTML并获得consume()值。所有使用UTF-8编码的网站都可以正常使用,但不适用于GB2312网站(例如,m.39.net,显示<title>而不是39������_�й����ȵĽ����Ż���վ)。

以下是我用来完成的代码:

39健康网_中国领先的健康门户网站

2 个答案:

答案 0 :(得分:1)

String content = IOUtils.toString(inputStream, "GB2312");可以提供帮助。

如果您想检测网页的字符集,据我所知,有3种方法:

  1. 使用connection.getContentEncoding()获取HTTP标头中描述的字符集;
  2. 在HTML代码中解析<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"><meta charset="UTF-8">(必须先下载HTML内容,然后阅读几行);
  3. 使用第三方库。例如。这个question中提到的那些。

答案 1 :(得分:0)

您见过http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/IOUtils.html

吗?
toString(byte[] input, String encoding)