学习目标:

  1. 了解 常见字符以及字符集
  2. 掌握 str,bytes以及互相转换的方法

1 字符、字符集

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等,字符集(Character set)是多个字符的集合,字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等.

ASCII编码是1个字节,而Unicode编码通常是2个字节。

UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是1,2,3个字节

2 python3中的字符串

python3中两种字符串类型:

  • str : unicode的呈现形式
  • bytes :字节类型,互联网上数据的都是以二进制的方式(字节类型)传输的

Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。

Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。我们可以通过调用 bytes() 类(没错,它是类,不是函数)生成 bytes 实例,其值形式为 b’xxxxx’,其中 ‘xxxxx’ 为一至多个转义的十六进制字符串(单个 x 的形式为:\xHH,其中 \x 为小写的十六进制转义字符,HH 为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围 0-255),对于同一个字符串如果采用不同的编码方式生成 bytes 对象,就会形成不同的值:

3 str和bytes类型的互相转换

  • str 使用encode方法转化为 bytes
s = 'abc'
print(type(s))
#str编码变为bytes类型
b = s.encode
print(type(b))
  • bytes 通过decode转化为 str
b = b'abc'
print(type(b))
#bytes类型解码成为str类型
s = b.decode()
print(type(s))

编码方式解码方式必须一样,否则就会出现乱码

小结

  1. str,bytes以及互相转换:
  • str 使用encode方法转化为 bytes
  • bytes 通过decode转化为 str
  1. 字符集编码类型(ASCII,unicode,UTF-8):
  • 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等
  • 字符集(Character set)有字符构成,是多个字符的集合,如:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等
03-24 15:30