彻底搞懂Python字符编码
什么是字符编码
计算机只能处理数字,字符(字母、汉字等)是一种人类文明和语言的产物,为了让计算机能够处理字符,需要将字符转换为数字编码。这样计算机在存储和传输字符时就可以使用数字来代替字符。字符编码就是将字符映射成数字编码的过程。
Python中的常见字符编码
Python编程语言中,常用的字符编码有ASCII、UTF-8、GBK、GB2312、Unicode等。下面对每一种编码进行详细介绍。
ASCII编码
ASCII是美国信息交换标准代码,使用7位二进制数表示128个字符,包括英文大小写字母、数字和一些符号。在Python中可以使用ord()函数将字符转换为ASCII码,使用chr()函数将ASCII码转换为字符。
示例:
print(ord('A')) # 输出65
print(chr(65)) # 输出'A'
Unicode编码
Unicode是用于处理全球各种语言文字的编码标准,它的目标是统一世界上所有的符号、文字等。Unicode编码支持各种文字包括中文、日文、韩文等。在Python中可以使用u'\uXXXX'的方式表示Unicode字符,其中XXXX是该字符的Unicode编码值的16进制表示。
示例:
print(u'\u4e2d\u6587') # 输出中文
UTF-8编码
UTF-8是一种针对Unicode的可变长度字符编码,它可以表示Unicode标准中的任意字符,且实现起来比Unicode编码更加节省存储空间。UTF-8使用1~4个字节来表示一个字符,前128个字符和ASCII编码完全相同。在Python中可以使用.encode()函数将字符编码为UTF-8格式的字节串,使用.decode()函数将字节串解码为UTF-8格式的字符。
示例:
s = '中文'
b = s.encode('utf-8')
print(b) # 输出b'\xe4\xb8\xad\xe6\x96\x87'
s2 = b.decode('utf-8')
print(s2) # 输出中文
GBK和GB2312编码
GBK和GB2312是中文编码标准,GB2312是最早的中文编码标准,只支持简体中文,GBK是GB2312的扩展,支持繁体中文和日文等。在Python中可以使用.encode()函数将字符编码为GBK或GB2312格式的字节串,使用.decode()函数将字节串解码为GBK或GB2312格式的字符。
示例:
s = '中文'
b1 = s.encode('gbk')
print(b1) # 输出b'\xd6\xd0\xce\xc4'
s1 = b1.decode('gbk')
print(s1) # 输出中文
b2 = s.encode('gb2312')
print(b2) # 输出b'\xd6\xd0\xce\xc4'
s2 = b2.decode('gb2312')
print(s2) # 输出中文
总结
本文详细介绍了Python中常见的字符编码,包括ASCII、Unicode、UTF-8、GBK和GB2312编码。在实际编程中需要根据需要选择合适的字符编码来处理字符数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:彻底搞懂Python字符编码 - Python技术站