字符串与字节的转换
字符串转换成字节的函数 encode()
字节转换成字符串的函数 dencode()
1 字符串字符串转换成字节
print('张'.encode('utf8'))
>>b'\xe5\xbc\xa0'
print('张'.encode('ascii'))
>>Traceback (most recent call last):
>>File "D:/pachong/1.py", line 3, in <module>>>UnicodeEncodeError: 'ascii' codec can't encode character '\u5f20' in position 0: ordinal not in range(128)
# 报错了,因为中文不支持ASCII编码转换,中文要使用utf8编码
print('A'.encode('ascii'))
>>b'A'
# 英文则支持ASCII编码
2 对比中文和英文在utf8编码时占用的字节数
print(len('张'.encode('utf8')))
print(len('A'.encode('utf8')))
# 结果
3
1
由此可知,1个中文字符经过utf8编码后为3字节,1个英文字符经过utf8编码后为1字节
3 python文件开头要写清楚编码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
编辑器保存格式为utf8 with BOM