其实在最前面的某一篇博文里,是绝对提过编码的,有ASCII,有UTF-8,有GB2312等等,这些我绝对说过的。

url编码

首先,Http协议中参数的传输是"key=value"这种键值对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割。如"?key1=value1&key2=value2",这样在服务端在收到这种字符串的时候,会用“&”分割出每一个参数,然后再用“=”来分割出键和值并进行处理。

然后,url只能使用 ASCII 字符集来通过因特网进行发送,也就是说url允许的只能是英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。那么如果url中有汉字,就必须编码成为允许的字符后方可使用。

但是有个问题是,标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)根据自己的一套编码方式进行编码,有点乱,而每个浏览器对同样的字符解码都是不太一样的。但这里只是指网站子文件的字符编码混乱,比如前面用的百度搜索,编码还是一样的:

火狐浏览器:

https://www.baidu.com/s?wd=%E8%83%A1%E6%AD%8C&rsv_spt=1&rsv_iqid=0xa88a849a000297f1&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=monline_3_dg&rsv_enter=1&oq=a&inputT=1164&rsv_t=44f3deAD5ZhHUuZS8qctF8DYdHQl0Jc0fIHprlrxVQPAKhGaI7WQzU0%2BDYkOZ7iFCV9H&rsv_pq=bc5bcce5000040e2&rsv_sug3=10&rsv_sug1=9&rsv_sug7=100&bs=a

谷歌浏览器:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E8%83%A1%E6%AD%8C&oq=%25E8%2583%25A1%25E6%25AD%258C&rsv_pq=bc8022d200026160&rsv_t=cf02s%2BKYldDmROy0mQpW7gMikG0rFAkF5WE0KydGdjM1v4PH9wW87XYxuCA&rqlang=cn&rsv_enter=1&rsv_sug3=1&rsv_sug1=1&rsv_sug7=100&rsv_sug2=0&inputT=12&rsv_sug4=439

IE浏览器:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E8%83%A1%E6%AD%8C&rsv_pq=b3b7634b00004749&rsv_t=fa91EE041mGXpmDfMhWtd6QSrm%2F24pXydfxJc%2BPc5W59OuaHKoicHE4Ngwo&rqlang=cn&rsv_enter=1&rsv_sug3=4

(搜索关键词我已经标注出来)

url的编码样式是使用【%】加上代表十六进制为一个字节形式的两位字符—【0-9和A-F】来(比如%EC),详细规则:

  • 对于ASCII字符,字母a在ASCII码中对应的字节是0x97,那么Url编码之后得到的就是%97,字母abc, url编码后得到的就是%97%98%99
  • 对于非ASCII字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如前面搜索的"胡歌"使用UTF-8字符集得到的字节为0xE8 0x83 0xA1 0xE6 0xAD 0x8C,经过Url编码之后得到%E8%83%A1%E6%AD%8C

所以url编码通常也被称为百分号编码(percent-encoding)。所以你觉不觉得url编码确实混乱,一会儿又是ASCII码,一会儿又是UTF-8码?

 不过平时使用时注意一下就可以,不用太在意

免责声明

本博文只是为了分享技术和共同学习为目的,并不出于商业目的和用途,也不希望用于商业用途,特此声明。如果内容中测试的贵站站长有异议,请联系我立即删除

转载于:https://www.cnblogs.com/Eeyhan/p/7774810.html

洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码相关推荐

  1. 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码

    编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...

  2. 【python】爬虫篇:python对于html页面的解析(二)

    我,菜鸡,有什么错误,还望大家批评指出!! 前言: 根据自己写的上一篇文章,我继续更第二部分的内容,详情请点击如下链接 [python]爬虫篇:python连接postgresql(一):https: ...

  3. python的爬虫基本知识介绍

    前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...

  4. 谷粒商城之高级篇知识补充

    谷粒商城高级篇之知识补充 前言 本篇主要是完成谷粒商城高级篇开发时,我们需要了解并学习一部分补充的知识,才能更好的完成商城业务. 以后我们将商城任务和额外知识分开来编写,方便商城业务的连贯性. 下面是 ...

  5. python网络爬虫实列——站长之家url解码编码

    爬虫实列--站长之家url解码编码 利用urllib可以做一些网页在线翻译,在线解码之类的实列. 1. 这是网站 2.找到所需要的请求头文件 找到请求网址,明确请求方法(详情请百度get请求与post ...

  6. 小白学Python之爬虫篇(一)——爬取PPT网站模板

    说明 菜狗大学生一枚,本着用什么学什么的原则,对之前简单学习的爬虫进行略微系统的整理,一方面方便以后复习,另一方面也希望给需要的人一点参考,毕竟看了那么多大佬的博客,是时候开始回报社会了哈哈哈(尴尬笑 ...

  7. python网络爬虫基础知识_Python网络爬虫基础知识

    一.网络爬虫 网络爬虫又被称为网络蜘蛛,我们可以把互联网想象成一个蜘蛛网,每一个网站都是一个节点,我们可以使用一只蜘蛛去各个网页抓取我们想要 的资源.举一个最简单的例子,你在百度和谷歌中输入'Pyth ...

  8. 【零基础学Python】爬虫篇 :第十四节--爬虫+词云解决实际问题

    十行代码帮助小姐姐给偶像送上最真挚的礼物----爬虫词云齐上阵,熬夜精心制作 905.png#pic_center) 故事背景 最近嘛,有位朋友找我帮忙嘛,希望我帮她做一份礼物,送给一直鼓舞着她不断向 ...

  9. Python 网络爬虫基础知识及体验

    概述 大佬都说我们已经从 IT 时代进入了 DT 时代,大数据已经深刻地影响人类社会,改变着我们的工作和生活.不知道谁说的:大数据是21世纪最重要的经济资源,未来最大的能源不是石油而是大数据! 虽然听 ...

最新文章

  1. 美多商城之用户注册(用户模型类)
  2. SAP RETAIL 为门店代码维护Plant Group
  3. setInterval动态时间处理
  4. git diff的用法
  5. 多人开发时Git下冲突的产生和解决
  6. Python实战-获取鼠标键盘事件
  7. 将html代码转换为dom,将HTML字符转换为DOM节点并动态添加到文档中
  8. Qt工作笔记-遍历文件夹里面的所有文件,并在QTreeWidget内显示
  9. Redis之跳跃表实现
  10. python 关闭udp端口_UDP聊天器
  11. JSP幼儿园管理系统
  12. 2018 CSDN博客之星评选,请投我一票~
  13. EPP-常见问题总结
  14. 基于SSM+Vue的邮票管理系统的设计与实现Java邮票分享系统邮票鉴定前后端分离(源码调试+讲解+文档)
  15. #Javascript基础
  16. 教你如何抢微信红包!实验数据告诉你先抢后抢的区别有多大?
  17. mysql 默认值批量更改_mysql 批量修改默认值
  18. 原生JS制作最简单轮播图(超清晰思路)
  19. 图解ARP协议(三)ARP防御篇-如何揪出内鬼并优雅的还手
  20. 自监督的暗光图像增强

热门文章

  1. DSSD : Deconvolutional Single Shot Detector论文阅读笔记
  2. DELL笔记本BIOS密码破解
  3. SLAM/VIO/VINS AR/VR
  4. VSPD软件发送与串口线发送区别
  5. 在线vr模型展示-3D可视化展示解决方案
  6. 荣耀手机用什么蓝牙耳机好?适合荣耀手机的蓝牙耳机推荐
  7. QuickTime的桌面录制
  8. java 压缩pdf_java实现文件的压缩和解压
  9. 阿里云服务器如何搭建MQTT服务器
  10. JAVA面向对象的思维导图