日期:2014-05-17  浏览次数:20710 次

写网页抓取程序在URL编码上遇到的问题
各位大大:
  我在写网页抓取程序时遇到个问题
  抓取程序是使用公司的框架来实现的,我作为一个低级程序员,就是负责实现框架中规定的几个方法
  简单地说,通过一系列设计好的流程,我可以得到一个需要抓取的网页的URL,然后将这个URL传入一个getHtml方法,框架就会自动发送http请求,获得该URL对应的网页的HTML并保存,多数网站这么做是行得通的。
  但是现在我遇到一个网站,其URL中带有汉字参数,这些汉字是以gb2312编码了的,这个网站的服务器貌似只会以gb2312的编码方式去解析URL中所带的参数,矛盾的地方就出现了,框架在自动发送请求之前,会自动对URL进行一次utf-8的编码,因此,即使我能够得到正确的URL,但框架在发送请求时会将其变成utf-8的编码,而网站的服务器对于变成utf-8的参数,始终返回的都是没有结果的网页。
  这里我想麻烦各位出出主意,有没有哪位之前有过类似的问题,可以提供点参考解决方案么?这里小生先行谢过了!
   
  我琢磨着有没有这样一个方法,它可以将源汉字转化为一个字符串,该字符串经过utf-8编码之后,恰好就能变成源汉字的gb2312编码,那么这个问题就解决了,但是我不会。

------解决方案--------------------
也许,对你有帮助
http://mrvsto.com/2010/08/c-convert-utf8-into-gb2312-and-convert-gb2312-to-utf8/

不过就我的理解,应当先解码为clear text然后再编码为gb2312的url.