#!/usr/bin/python3
# -*- coding: utf-8 -*-
s='为人民服务'
#Python默认使用UTF-8编码处理中文,英文在GBK和UTF-8里得会正常显示
print(s.encode('utf-8'))
#它的UTF-8编码在内存中是这样的:
# b'\xe4\xb8\xba\xe4\xba\xba\xe6\xb0\x91\xe6\x9c\x8d\xe5\x8a\xa1'
#通过encode方法,可以把它变GBK编码
print(s.encode('gbk'))
#它的GBK编码在内存中是这样的:
#b'\xce\xaa\xc8\xcb\xc3\xf1\xb7\xfe\xce\xf1'
s_binary=b'\xce\xaa\xc8\xcb\xc3\xf1\xb7\xfe\xce\xf1'
#在内存中输入以上byte,得到一个bytes类型
#使用decode方法解码,告诉编码器把bytes按GBK的编码重组成UTF-8编码的字符串
s_u8=s_binary.decode('gbk')
print(s_u8)
#强行把GBK编码按UTF-8编制重组,会产生错误
s_u8=s_binary.decode('utf-8')
print(s_u8)
#这里会抛出一个错误:
# #UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 2: invalid continuation byte
Python处理中文的GBK编码和UTF-8编码
最新推荐文章于 2024-04-07 08:04:21 发布