论坛首页 编程语言技术论坛

抓取网页时转换字符集出现问题(问题已解决)

浏览 3044 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-26  

用ruby写个网页抓取的小东东,遇到问题:

环境:ubuntu8.04+netbeans6.1+ruby1.8.6

在ruby中使用Net::HTTP.get_response抓取一个GB2312编码的网页后转换成utf8全是乱码,主要代码部分如下

resp=Net::HTTP.get_response(URL,URI)
body=resp.body[0,resp.size-1]
r=Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE",body)

 接下来我要使用r中的内容

但是发现里面的内容全是乱码,直接写入数据库写不进去,提示有非法字符。

如果要抓取的网站的编码是utf-8,不用iconv转换,直接存入数据库,完全正常。

请问:

1、问题出在哪里?是Iconv转换有问题?还是get_response时就要做什么处理?

2、另:ruby直接连接mysql如何指定使用utf-8连接?(非rails)

 

 

 问题已解决:原来它服务器端采用gzip压缩传输的,客户端gunzip一下就行了。  dbh.query("SET NAMES 'utf8'") 发送给mysql即以utf8连接了

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics