字符编码与转码
ASCII(只能存英文或特殊字符占1个字节8位)-GB2312-GBK(向下兼容GB2312)-Unicode(俗称万国编码集,既兼容GB2312又兼容GBK,中英文均默认占两个字节16位)-UTF8(可变长的字符编码集,可以认为时Unicode的扩展集,目的是为了减少英文字符的占用内存,默认所有的英文按ASCII码的形式存储,所有中文按3个字节存储)
s = "你好"
print(s)
s_gbk = s.encode("gbk")
print(s_gbk) # gbk
print(s.encode()) # utf-8
image
默认是utf-8,转成gbk可以看到前面有个b表示变成了bytes类型,而且可以看到两种模式下的输出是不一样的。
gbk_to_utf8 = s_gbk.decode("gbk").encode("utf-8")
print("utf-8", gbk_to_utf8)
image
uft8向gbk编码需要经过unicode ,可以说所有的字符集转换都需要经过unicode.
s = "你好"
print(s.encode("gbk"))
print(s.encode("utf-8"))
print(s.encode("utf-8").decode("utf-8").encode("gb2312"))
print(s.encode("utf-8").decode("utf-8").encode("gb2312").decode("gb2312"))
image
网友评论