零基础学python之文本和编码问题
字符串是个相当简单的概念:一个字符串是一个字符序列。问题出在”字符”的定义上。
在2015 年,”字符”的最佳定义是Unicode字符。因此,从Python 3 的str对象中获取 的元素是Unicode字符
Unicode 标准把字符的标识和具体的字节表述进行了如下的明确区分。
字符的标识,即码位,是0~1 114 111的数字(十进制),在Unicode标准中以4~6个十六进制数字表示,而且加前缀U+。例如,字母A的码位是U+0041,欧元符号的码位是U+20AC,高音谱号的码位是U+1D11E. 在Unicode 6.3标准中,约10% 的有效码位有对应的字符。
字符的具体表述取决于所用的编码。编码是在码位和字节序列之间转换时使用的算法。在UTF-8编码中,A(U+0041)的码位编码成单个字节\x41,而在UTF-16LE编码中编码成两个字节\x41\x00。再举个例子,欧元符号(U+20AC)在UTF-8编码中是三个字节——\xe2\x82\xac,而在UTF-16LE中编码成两个字节:\xac\x20.
把码位转换成字节序列的过程是编码,使用encode;把字节序列转换成码位的过程是解码,使用decode.
非英语用户常常会搞反所谓的编码解码,可以这样理解: 把Unicode字符串想成“人类可读”的文本.那么,
把字节序列变成人类可读的文本字符串就是解码
而把字符串变成用于存储或传输的字节序列就是编码
所以,我们在做爬虫的时候,遇到乱码的情况,可以先去看看编码格式是否正确!
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
必学Python库 你知道多少?
Tkinter———— Python默认的图形界面接口。 Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。 Python Imaging Library(PIL)————python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。 Pmw(Python megawidgets)Python超级GUI组件集————一个在python中利用Tkinter模块...
-
下一篇
Java 学习(11)--继承/final 关键字/多态/抽象类
1.继承 (1)继承:子类可以自动拥有父类的非私有的成员变量和成员方法 (2)Java中如何表示继承呢?格式是什么呢? A:用关键字 extends表示 B:格式: class 子类名 extends 父类名 {} 示例: (3)继承的好处: A:提高了代码的复用性 B:提高了代码的维护性 C:让类与类产生了一个关系,是多态的前提 (4)继承的弊端: A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的 类。 原则:低耦合,高内聚。 耦合:类与类的关系 内聚:自己完成某件事情的能力 B:打破了封装性 (5)Java中继承的特点 A:Java中类只支持单继承(当多继承有重复的方法时,子类调用方法时无法判断是哪个方法) B:Java中可以多层(重)继承(继承体系) (6)继承的注意事项 A:子类不能继承父类的私有成员,只能继承父类所有的非私有成员 B:子类不能继承父类的构造方法,但是可以通过 super 去访问 C:不要为了部分功能而去继承 (7)什么时候使用继承呢 ? A:继承体现的是: is a 的关系。 B:采用假设法 (8)Java继承中的成员关系 A:成员变量 a:子...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL数据库在高并发下的优化方案
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境


微信收款码
支付宝收款码