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

  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

  

python字符编码小结的更多相关文章

  1. python --- 字符编码学习小结(二)

    距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...

  2. python 字符编码练习

    通过下面的练习,加深对python字符编码的认识 # \x00 - \xff 256个字符 >>> a = range(256)>>> b = bytes(a) # ...

  3. Python字符编码讲解

    声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...

  4. 深入理解Python字符编码--转

    http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...

  5. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  6. Python字符编码详解,str,bytes

    什么是明文 “明文”是可以是文本,音乐,可以编码成mp3文件.明文可以是图像的,可以编码为gif.png或jpg文件.明文是电影的,可以编码成wmv文件.不一而足. 什么是编码?把明文变成计算机语言 ...

  7. Python字符编码补充

    字符编码: Python字符编码贯穿Python学习的始终,现在应用的是Python2中字符编码的问题是很多的. 这次是要彻底解决Python字符编码的问题!!! 1 字符编码的发展过程: 1 .AS ...

  8. 转1:Python字符编码详解

    Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...

  9. 转2:Python字符编码详解

    1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...

随机推荐

  1. Linux安装配置相关

    1.常用汇总 useradd usertemp //添加用户 passwd usertemp //修改/设置密码 userdel usertemp //删除用户 2. profile/baserc等配 ...

  2. hibernate log4j2输出sql带参数

    网上有很多是输出sql ,参数以?的形式,后面输出参数binding的log,还要自己拼接特别麻烦:这里整理下输出原生sql的方法.组件是log4jdbc 1: 修改pom.xml,确定有下面的配置, ...

  3. &&运算符和||运算符的优先级问题 专题

    public class SyntaxTest { @Test public void test() { System.out.println(true || true && fals ...

  4. CCflow6 的使用

    sELECT * FROM WF_GENERWORKFLOW        WHERE WorkID=00000 -- 查看流程状态 wf_selectaccpter --查看流程某个节点下的人员 M ...

  5. erlang通讯解析浮点数的一些问题

    这两天我弟弟遇到一个比较有意思的问题.他在前端协定数据协议的时候用到了float和double,所以他想问float和double在erlang后端中是如何解析的.我之前写协议也很少用到浮点数,所以也 ...

  6. HTML 5 Web 存储提供了几种存储数据的方法

    localstorage存储对象分为两种: 1. sessionStorage: session即会话的意思,在这里的session是指用户浏览某个网站时,从进入网站到关闭网站这个时间段,sessio ...

  7. Table中采用JQuery slideToggle效果的问题

    需求:用JQuery实现,点击最上边的粗加号时,对所有含有子表的Tr进行展开,点击 + 号时,只对当前Tr的下一个tr内容的动态隐藏和显示: 问题:JQuery的slideToggle() slide ...

  8. 从github克隆内容到本地时权限问题

    从github克隆内容到本地时权限问题

  9. SQL Server DBA SQL

    . 监控事例的等待 ,,)) "Prev", ,,)) "Curr",count(*) "Tot" from v$session_Wait ...

  10. 05、Win7上openSSH的安装与配置

    05.Win7上openSSH的安装与配置 1.概述 linux上的ssh命令在网络通信场景下非常方便.现在windows也支持ssh方式和远程主机进行访问.如果只是使用ssh简单的访问功能,就需要很 ...