python基础知识之字符编码

  字节与字符:计算机存储的数据,不管是文本、音频、视频、软件等都是以二进制文件保存,二进制一个字节序列为8个byte位。而字符是显示在屏幕上的一个英文字母、标点等。

  编码与解码:将编辑器内打开看到的一个个字符保存在磁盘时是以二进制字节序列形式保存起来的,从字符到字节的转换叫做编码(encode),从字节到能显示的字符叫解码(decode)。

  python3编码问题:默认情况下,Python源文件以UTF-8编码。在这种编码中,世界上大多数语言的字符可以同时在字符串文字、标识符和注释中使用——尽管标准库只使用ASCII字符作为标识符,这是任何可移植代码都应该遵循的约定。为了正确地显示所有这些字符,您的编辑器必须认识到该文件是UTF-8,并且必须使用支持文件中所有字符的字体。要声明除默认值之外的编码,应该添加一条特殊的注释行作为文件的第一行。其语法如下:# -*- coding: encoding -*- 。python库codecs支持编码,比如,当想要使用Windows-1252字体时,我们可以在代码第一行加上:# -*- coding:cp1252 -*-

  encode与decode函数的使用:在python3中,文本字符与二进制数据分别用str和bytes表示。在字符引号前加b标记,就能申明一个bytes类型对象,bytes类型可以用ASCII范围内的字符和其他十六进制形式字符表示,但不能用中文等非ASCII字符表示。由于网络数据传输时一般是bytes,因此进行可以用encode函数将str类型转换成bytes类。如:

  str1=‘你好’

  bytes1=str1.encode(‘utf-8’)

  同理,亦可以用decode函数将bytes转换成str。亦可以用bytes(str1,‘utf-8’)来转换。

猜你喜欢

转载自www.cnblogs.com/zs-learn/p/9299440.html