百度和Google的URL编码方式探索

原创 2006年06月04日 21:33:00

今天才注意到,百度和Google的URL编码方式不一样。

比如我们搜“技术”这个词,然后观察IE地址栏。


用Baidu得到的结果是
http://www.baidu.com/s?wd=%BC%BC%CA%F5&cl=3

用Google得到的结果是
http://www.google.com/search?hl=zh-CN&q=%E6%8A%80%E6%9C%AF&lr=

即,baidu_urlencode("技术")=%BC%BC%CA%F5  , google_urlencode("技术")=%E6%8A%80%E6%9C%AF
,很明显不一样,那么两者分别用的是什么编码算法呢?

赶快拿出可爱的Python来帮我们解决问题吧。
>>> import urllib
>>> url=urllib.unquote('http://www.baidu.com/s?wd=%BC%BC%CA%F5&cl=3')
>>> url
'http://www.baidu.com/s?wd=/xbc/xbc/xca/xf5&cl=3'
>>> print url.decode('gb2312')
http://www.baidu.com/s?wd=技术&cl=3
>>>

很明显,baidu的url编码方式是gb2312。那么google呢?能否如法泡制?

>>> url2=urllib.unquote('http://www.google.com/search?hl=zh-CN&q=%E6%8A%80%E6%9C%AF&lr=')
>>> url2
'http://www.google.com/search?hl=zh-CN&q=/xe6/x8a/x80/xe6/x9c/xaf&lr='
>>> print url2.decode('gb2312')
Traceback (most recent call last):
  File "<input>", line 1, in ?
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 40-41: illegal multibyte sequence

很遗憾,报错了,这是因为选择了gb2312解码是不对的。那就试试别的吧,可能是'utf-8'吧,go on

>>> print url2.decode('utf-8')
http://www.google.com/search?hl=zh-CN&q=技术&lr=

yeah,成功了。这说明google对url的编码是utf-8

 

Python is so cool!

 

百度url 参数详解全

百度url解析Joe.Smith整理大全 百度url解析Joe.Smith整理大全... 1 参考百度rul:2 https:2 //www.baidu.com/2 s?. 2 ie=utf-8. 2...
  • qq_26816591
  • qq_26816591
  • 2016年11月25日 16:05
  • 9077

浏览器url编码

转自:http://blog.csdn.net/ultrani/article/details/8176122/ 简述: 1:地址栏输入和点击url访问浏览器时,chrome下...
  • xianymo
  • xianymo
  • 2016年09月10日 10:56
  • 1780

不同浏览器中URL的编码方式

一、直接在地址栏中输入URL的情况 在中文Windows环境下,本地编码为GB2312: 假如在浏览器地址栏中直接输入以下URL:http://localhost:8080/servlet...
  • u014785687
  • u014785687
  • 2017年07月02日 10:15
  • 2881

解析百度搜索结果link?url=参数分析

本篇文章是本人在使用python的requests.get(url)进行访问页面中遇到的302重定向问题时,上网上查找到的一篇关于百度重定向参数解析的博文,是很早之前的博文了,大概在12年左右,百度已...
  • tingyun_say
  • tingyun_say
  • 2016年07月14日 11:23
  • 3111

DotSpatial如何加载GeoServer、谷歌 、百度、腾讯的WMS地图

转载请注明来源:http://blog.csdn.net/caoshiying 首先说明一下,这篇文章讲解的是WMS地图,不是WMTS地图,讲的不是瓦片索引计算方法与坐标转换。朋友们在动手之前需要申请...
  • caoshiying
  • caoshiying
  • 2016年07月21日 17:15
  • 4431

URL编码 百分号编码和解码 URLEncoder和URLDecoder的大致实现原理

(转http://www.xuebuyuan.com/1736323.html)   /*   网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-f...
  • lw4135
  • lw4135
  • 2016年07月27日 18:05
  • 3703

解析URL和文件的编码方式

  • 2012年10月17日 10:47
  • 80KB
  • 下载

Google Protocol Buffer简介、开发指引及编码方式

总览: 开发引导: 欢迎来到protocol buffer开发文档。protocol buffers是一个语言无关、平台无关、序列化结构数据可扩展的用来协议交互、数据存储等的解决方案。 ...
  • u012398613
  • u012398613
  • 2014年10月27日 19:30
  • 809

Google Protocol Buffer 的编码方式

Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag。一 Varints 编码每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如果为...
  • xufeng0991
  • xufeng0991
  • 2016年08月11日 16:44
  • 442

如何使用Java代码获取文件、文件流或字符串的编码方式.zip

  • 2015年02月11日 17:17
  • 486KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:百度和Google的URL编码方式探索
举报原因:
原因补充:

(最多只允许输入30个字)