首先简要说一下各种字符编码:

  1. ASCII

    计算机只认识0101,但如何让计算机认识人类语言?将每个字母和符号给予固定的编号,然后将这个编号转换成二进制,计算机就可以正确识别这些字母与符号,同时计算机也可以逆操作,将二进制转换成对应的编号在翻译成相应的字符来显示给人类,所以产生了ASCII编码。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。

  2. GB2312

    计算机是美国人发明的,所以美国佬搞了个ASCII编码,但是我们中国人也得用计算机不是,如何让计算机认识中文?所以中国国家标准总局搞了个GB2312编码来让计算机认识中文,后来又搞了一个GBK来扩展了一些中、日、韩的文字,这样,计算机可以认识中文了。

  3. Unicode

    现在中文、英文可以被识别,但问题来了,世界还有阿拉伯语、西班牙语、日语、韩语等其他语言,所以就搞了一个Unicode编码,支持所有国家的语言,所以Unicode被称为统一编码或者万国码。

  4. UTF-8

    Unicode收录了世界上所有语言中的文字,所以速度就会变慢,为了提升效率,就有了一种中间的字符集: UTF,  我们常用的UTF-8就是其中一种。

为了处理英文,有了ASCII编码

为了处理中文,有了GB2312

为了处理各国字符,有了Unicode

为了提升效率,有了UTF-8

对于Unicode,长这个样字:    \u751F\u5316\u5371\u673A

我们认识吗?不认识,所以需要转换成utf-8

这里牵扯到encode和decode (encode代表将字符串编码为Unicode,decode代表将Unicode解码为decode)

在python3中 str字符串是没有办法直接decode的,所以先encode再decode

data = r'\u751F\u5316\u5371\u673A'
print(data.encode('utf-8').decode('unicode_escape'))

(单引号前的哪个r,代表这个字符串为原始字符,即忽略所有转义符)

但是在爬数据时,尤其是获取html页面中文字时,会出现这种东西: 沃尔玛

这是啥呢? 这也是Unicode,但是这时经过html转移后的Unicode,这东西需要转换成呢我们认识的汉字:

from html import unescape
str = '沃尔玛'
print(unescape(str))

调用html库里边的unescape来进行解码,

那如果要将汉字编码成  沃尔玛 这种问麽办?

from html import escape
content = '<image id="德玛西亚">'
print(escape(content))

这是一个标签,经过编码后的结果是:

看来 这个只能将标签符号进行编码,英文、中文、等号不能够进行编码。

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

最新文章

  1. EF快速开发定义数据接口类(转)
  2. SharePoint 2013 Error - File names can&#39;t contain the following characters: &amp; &quot; ? &lt; &gt; # {} % ~ / \.
  3. Spark MLib 基本统计汇总 2
  4. Android四大组件
  5. oop、try_except、单例模式
  6. jar文件签名
  7. 20160720-java高并发
  8. redis提示Could not get a resource from the pool(jedis连接池配置)
  9. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
  10. 我的第一个C语言程序 (A+B Problem)(cheney-yang)
  11. C#操作Excel开发报表系列整理(转)
  12. 解决“您必须先更新GOOGLE play才能运行此应用”的问题
  13. SQL查询重复记录、删除重复记录方法
  14. mybatis缓存的设计
  15. Android中 Git 使用中几个概念
  16. 使用web3+solc编译发布以太坊智能合约
  17. laravel在中间件内生成的变量如何传到控制器
  18. 实时计算CEP
  19. header请求头信息详细介绍
  20. 深入浅出SharePoint2012——安装Report Service

热门文章

  1. 字符串json转成json对象
  2. git&amp;github学习【尚硅谷】
  3. JAVA4大线程池
  4. It&#39;s the loneliest feeling not to know who you are.
  5. AngularJs Type error : Cannot read property &#39;childNodes&#39; of undefined
  6. IntelliJ IDEA IDEA 2018 激活注册码
  7. Shape详解
  8. Nodejs入门边读边想边记(-)
  9. webstorm下载激活汉化
  10. 手机端@media screen布局自适应