解析HTML 中文成乱码

晨星★~雨泪 2008-03-25
今天坚遇到这么一个问题,在用 lucene的 HtmlDocument 获取HTML 的文本时,解析出的中文出现乱码.用 org.apache.lucene.demo.html.HTMLParser
也一样出现了乱码.期待大家的指点指点.
imjl 2008-03-25
爬虫首先要分析目标网页编码,连接数据库字符集,数据库内部字符集定义。

保证统一。


比较好的是全部utf-8。

晨星★~雨泪 2008-03-26
把编码设置成UTF-8就可以了,但是这个编码问题实在是不清楚.总感觉找不到根源.
linleran 2008-04-18

可能每个页面的编码格式不同,有的是utf-8,有的是gb2312,都按utf-8提取转换可能会造成乱码。可以提取页面的charset再转换。

  假设pageContent 是html页面的内容。
  int flagBeginPosition = pageContent.indexOf("charset=");
  int flagEndPosition = pageContent.indexOf("\">",flagBeginPosition);
  if (flagBeginPosition!=-1 && flagEndPosition>flagBeginPosition){
   m_charset = pageContent.substring(flagBeginPosition+"charset=".length(),flagEndPosition);
  }
  try {
   pageContent = new String(doc.getContent(), m_charset);
  } catch (UnsupportedEncodingException e1) {
   e1.printStackTrace();
  }

huiwenjiaoyu 2010-01-20
如何提取呀。
huiwenjiaoyu 2010-01-20
我现在有一个问题,我用的是UTF-8动态调用的文本显示正常,但是页面静态文本显示的全都是乱码?是怎么回事呀?
huiwenjiaoyu 2010-01-20
我都快郁闷半个月了,有谁能够帮帮我呀?
kexzcle 2010-01-20
html解析不同编码格式 没人解决吗
kexzcle 2010-01-21
linleran 写道

可能每个页面的编码格式不同,有的是utf-8,有的是gb2312,都按utf-8提取转换可能会造成乱码。可以提取页面的charset再转换。

  假设pageContent 是html页面的内容。
  int flagBeginPosition = pageContent.indexOf("charset=");
  int flagEndPosition = pageContent.indexOf("\">",flagBeginPosition);
  if (flagBeginPosition!=-1 && flagEndPosition>flagBeginPosition){
   m_charset = pageContent.substring(flagBeginPosition+"charset=".length(),flagEndPosition);
  }
  try {
   pageContent = new String(doc.getContent(), m_charset);
  } catch (UnsupportedEncodingException e1) {
   e1.printStackTrace();
  }


 pageContent = new String(doc.getContent(), m_charset);

请问这一句中 doc.getContent()是什么? byte[]?哪里出来的?

Global site tag (gtag.js) - Google Analytics