python-字符编码的转换
python-字符编码的转换
1、了解基础知识
ASCII 一个英文,占一个字节。只能存英文和特殊字符。
gb2312 约可以存7000中文
gb1830 约可以存27000中文
gbk 默认中文,
Unicode 一个英文和中文占2个字节,万国码,可以显示全球各个国家的字符。
utf-8(unicode的扩展),可变长的字符编码, 英文还是按ASCII方式存储,1个中文占3个字节。
在python2默认编码是ASCII, python3里默认是unicode
其他语言转成unicode ,再将unicode 转换成gbk.
中文转成unicode ,再通过unicodel转换。
在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
一定要记得,用什么方式编码的就必须用什么方式解码
#coding=gbk import sys print(sys.getdefaultencoding())#查看默认的字符编码是什么 utf_gbk="你好" utf1=utf_gbk.encode("utf-8").decode("utf-8").encode("gbk").decode("gbk") print(utf1,type(utf1)) 打印结果 utf-8 你好 <class 'str'>
总结:所有转换首先要把它转换成unicod,然后再用encode来转换。