理解字符编码,避免乱码困扰
字符编码是将人类可读的字符(如字母、汉字)转换为计算机可存储和传输的二进制数据的过程。在 Python 中,字符串(str)是 Unicode 编码的,而字节(bytes)则是原始的二进制数据。
常见的编码格式包括:
在 Python 3 中:
str.encode(encoding):将字符串转为字节(bytes)bytes.decode(encoding):将字节转回字符串s = "你好,世界!"
b = s.encode('utf-8') # b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
s2 = b.decode('utf-8') # '你好,世界!'
UnicodeDecodeError:通常是因为用错了解码方式(如用 UTF-8 解码 GBK 文件)。
解决方法:
chardet 库检测)open('file.txt', encoding='utf-8')点击下方按钮查看编码转换结果(模拟演示):