python字符编码小结
首先简要说一下各种字符编码:
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
最新文章
- EF快速开发定义数据接口类(转)
- SharePoint 2013 Error - File names can&#39;t contain the following characters: &; "; ? <; >; # {} % ~ / \.
- Spark MLib 基本统计汇总 2
- Android四大组件
- oop、try_except、单例模式
- jar文件签名
- 20160720-java高并发
- redis提示Could not get a resource from the pool(jedis连接池配置)
- 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
- 我的第一个C语言程序 (A+B Problem)(cheney-yang)
- C#操作Excel开发报表系列整理(转)
- 解决“您必须先更新GOOGLE play才能运行此应用”的问题
- SQL查询重复记录、删除重复记录方法
- mybatis缓存的设计
- Android中 Git 使用中几个概念
- 使用web3+solc编译发布以太坊智能合约
- laravel在中间件内生成的变量如何传到控制器
- 实时计算CEP
- header请求头信息详细介绍
- 深入浅出SharePoint2012——安装Report Service
热门文章
- 字符串json转成json对象
- git&;github学习【尚硅谷】
- JAVA4大线程池
- It&#39;s the loneliest feeling not to know who you are.
- AngularJs Type error : Cannot read property &#39;childNodes&#39; of undefined
- IntelliJ IDEA IDEA 2018 激活注册码
- Shape详解
- Nodejs入门边读边想边记(-)
- webstorm下载激活汉化
- 手机端@media screen布局自适应