编码(unicode、gbk、utf-8)之间的转换

junlan
5
2024-11-25

编码(unicode、gbk、utf-8)之间的转换

#utf-8(世界通用编码)编码的中文字符占用3个字节,gbk编码的中文字符占用2个字节

s="你好,中国!"
print(s.encode('unicode-escape'))  #unicode转义序列,默认是unicode编码,转换为unicode转义序列,用\u开头、后面跟4个十六进制数字表示
u=b'\\u4f60\\u597d\\uff0c\\u4e2d\\u56fd\\uff01'  #unicode编码的bytes(unicode转义序列)
print(u.decode('unicode-escape'))
print(s.encode('utf-8'))  #unicodetoutf-8,默认是unicode编码,转换为utf-8编码,中文字符占用3个字节,用\x开头、后面跟2个十六进制数字表示
b=b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xef\xbc\x81'  #utf-8编码的bytes(utf-8编码的值)
print(b.decode('utf-8'))#utf-8编码的bytes(utf-8编码的值)转为unicode编码,得出原始内容

print(s.encode('gbk'))  #unicodetogbk,默认是unicode编码,转换为gbk编码
k=b'\xc4\xe3\xba\xc3\xa3\xac\xd6\xd0\xb9\xfa\xa3\xa1'  #gbk编码的bytes(gbk编码的值)
print(k.decode('gbk'))  #gbk编码的bytes(gbk编码的值)转为unicode编码,得出原始内容

image-20240906204950289