首页 > 代码库 > python字符编码与解码 unicode,str
python字符编码与解码 unicode,str
字符编码
计算机中的字符都是以特定的编码形式存放的,从最早的ascii到后来的Unicode以及UTF-8, 在python中, 字符串str也是是区分编码的,在各种编码的字符串之间,有一座桥梁,就是unicode类型。
str, unicode
str转到unicode需要解码,即decode;反之,unicode转到str需要编码,即encode:
str -- (decode) --> unicode
unicode -- (encode) --> str
str也可以直接用encode方法把一种编码的str转到另外一种编码的str,其实表面上的直接转码还是经过了先解码后编码的过程,就是说:str.encode()等价于str.decode(sys.defaultencoding).encode(),sys.defaultencoding是python默认编码,一般是ascii编码。类似地,对于unicode类型,也有:unicode.decode()等价于unicode.encode(sys.defaultencoding).decode()。
例子代码:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time : 2017/7/17 22:09 4 # @Author : dswang 5 6 import sys 7 8 if __name__ == ‘__main__‘: 9 print sys.getdefaultencoding() 10 x = ‘严‘ 11 print type(x) 12 print repr(x) 13 14 y = x.decode(‘utf-8‘) 15 print type(y) 16 print repr(y) 17 18 z = y.encode(‘gb2312‘) 19 print type(z) 20 print repr(z)
结果为:
ascii <type ‘str‘> ‘\xe4\xb8\xa5‘ <type ‘unicode‘> u‘\u4e25‘ <type ‘str‘> ‘\xd1\xcf‘
说明:文件头注释中的-*- coding: utf-8 -*-用来指明文件的编码方式为utf-8,代码中str的编码也默认为utf-8。
参考文章
【1】字符编码笔记:ASCII,Unicode和UTF-8 by 阮一峰
python字符编码与解码 unicode,str
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。