您的位置:

Python字符串编码和解码

一、Python中的字符串

在Python中,字符串是一种基本的数据类型,用于存储和表示文字信息。在Python 3中,字符串是以Unicode编码方式存储的。

# 字符串示例
s = "Hello World!"
print(s)

二、Python字符串编码

字符串在传输或存储时需要进行编码,Python中常用的编码包括ASCII、UTF-8、GBK等。

1. ASCII编码

ASCII是一种基础的编码方式,只支持英文字母、数字和一些符号,使用7个二进制数字表示一个字符。在Python中,可以使用ord()函数将字符转换成ASCII码,使用chr()函数将ASCII码转换成字符。

s = "Python"
for c in s:
    print(ord(c))
    print(chr(ord(c)))

2. UTF-8编码

UTF-8是一种Unicode编码方式,支持全世界几乎所有语言的字符。在Python中,可以使用encode()函数进行UTF-8编码,使用decode()函数进行解码。

s = "中文"
b = s.encode('utf-8')
print(b) # b'\xe4\xb8\xad\xe6\x96\x87'
s2 = b.decode('utf-8')
print(s2) # 中文

3. GBK编码

GBK是一种中国特定的编码方式,支持中文字符。在Python中,可以使用encode()函数进行GBK编码,使用decode()函数进行解码。

s = "中文"
b = s.encode('gbk')
print(b) # b'\xd6\xd0\xce\xc4'
s2 = b.decode('gbk')
print(s2) # 中文

三、Python字符串解码

在读取文件或者从网络传输数据时,经常需要将编码后的字符串进行解码。如果编码和解码方式不一致,会出现乱码的情况。

1. UTF-8解码

b = b'\xe4\xb8\xad\xe6\x96\x87'
s = b.decode('utf-8')
print(s) # 中文

2. GBK解码

b = b'\xd6\xd0\xce\xc4'
s = b.decode('gbk')
print(s) # 中文

四、小结

Python中的字符串编码和解码是非常重要的知识点,本文介绍了常用的ASCII、UTF-8和GBK编码方式,并提供了Python代码示例。在进行编码和解码时需要注意选择正确的编码方式,避免出现乱码。