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

  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. vim配置成c++IDE

    mv ~/.vimrc ~/.vimrcbak mv ~/.vim ~/.vimbak git clone https://github.com/handy1989/vim.git mv vim/.v ...

  2. 【JavaEE】怎么设置tomcat管理员的用户名和密码

    如果我们输入错误的Tomcat管理员密码,那么就有提示如下: 2 从它的提示信息中,我们就能找到解决方法,请留意上图中标出的位置!   我们首先打开Tomcat的配置文件,具体如下:   我们进入To ...

  3. NewStar 信息分发系统设计

    目录 NewStar 信息分发系统设计 我想要怎么做 系统流程图 解释和初步的模板展示 NewStar 信息分发系统设计 我们在全世界发布网站本质就是向全世界分发我们的信息给客户/潜在客户,然后希望促 ...

  4. Spring注解之@Lazy注解,源码分析和总结

    一 关于延迟加载的问题,有次和大神讨论他会不会直接或间接影响其他类.spring的好处就是文档都在代码里,网上百度大多是无用功. 不如,直接看源码.所以把当时源码分析的思路丢上来一波. 二 源码分析 ...

  5. 让zepto支持requirejs的方法

    window.Zepto = Zepto '$' in window || (window.$ = Zepto) if ( typeof define === "function" ...

  6. 渐进式jpeg(progressive jpeg)图片及其相关

    最近看有些网站上的jpg格式的图片在呈现的时候,有两种方式,一种是自上而下扫描式的,还有一种就是先是全部的模糊图片,然后逐渐清晰(就像GIF格式的交错显示). 一.基本JPEG(baseline jp ...

  7. 【Shell脚本学习24】Shell输入输出重定向:Shell Here Document,/dev/null文件

    Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出重定向 命令的输出不仅可以 ...

  8. Eucalyptus(v4.0)系统需求

    1.计算需求 Physical Machines: All Eucalyptus components must be installed on physical machines, not virt ...

  9. 新客户上云 - 来自 Azure 技术支持部门的忠告

    本课程内容是来自 Azure 中国技术支持团队对新客户上云的忠告. 对于上云的新用户,Azure 技术支持部门有如下忠告: 1. 时刻关注并理解以下网站的变动来优化资源配置,更新设计方案. Azure ...

  10. 利用BandwagonHost***便宜Linux VPS安装VNC(远程桌面)- 安装篇

    如果我们有搭建过网站,或者用过VPS.服务器,肯定会看到最近几年主机市场竞争还是比较激烈的.尤其是VPS.服务器的价格走低,很多商家价格厮杀的厉害,甚至出现年付几美元的VPS.便宜VPS固然是好事,我 ...