1. 编码与解码
编码
将人类能够读懂的字符编码成计算机能够直接读懂的字符
解码
将计算机能够直接读懂的字符解码成人类能够读懂的字符
s1 = '事已至此 何不一搏'
编码 encode
print(s1.encode('gbk'))
"""
字符串前面如果加了字母b 表示该数据类型为 bytes类型
bytes类型可以看成是二进制
"""
解码 decode
res = b'\xca\xc2\xd2\xd1\xd6\xc1\xb4\xcb \xba\xce\xb2\xbb\xd2\xbb\xb2\xab'
print(res.decode('gbk'))
"""
基于网络传输数据 数据都必须是二进制格式
所以肯定涉及到编码与解码
"""
2. 如何解决乱码的问题
数据当初以什么编码编的就以什么编码解即可
res1 = s1.encode('gbk')
print(res1) # 编码
res2 = res1.decode('euc_kr')
print(res2) # 乱码
res3 = res1.decode('gbk')
print(res3) # 正常显示
3. python解释器层面
python2解释器默认的编码是ASCII码
1.文件头:必须写在文件的最上方 告诉解释器使用指定的编码
# coding:utf8
# -*- coding:utf8 -*- 美化写法
2.字符前缀:在使用python2解释器的环境下定义字符串习惯在前面加u
name = u'你好啊'
python3解释器默认的编码是utf8