Python输出\u编码将其转换成中文 | 您所在的位置:网站首页 › python27中文字符串 › Python输出\u编码将其转换成中文 |
string格式,举例:
str = '\u897f'
print str.decode("unicode-escape")
结果:西 但如果是list格式,则不适用例如: list = [u'\u897f'] print str(list).decode("unicode-escape")结果:['\u897f'] 需要改为: list = [u'\u897f'] s = str(list).replace('u\'','\'') print s.decode("unicode-escape")结果:['西‘] list赋值的时候, #!/usr/bin/python # -*- coding=utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") l = [] s0 = '西0' s1 = u'西1' s2 = '\u897f2' s3 = u'\u897f2' l.append(s0.decode("unicode-escape")) l.append(s1.decode("unicode-escape")) l.append(s2.decode("unicode-escape")) l.append(s3.decode("unicode-escape")) print '有转码:{}'.format(str(l).replace('u\'','\'').decode("unicode-escape")) print '不替换:{}'.format(str(l).decode("unicode-escape")) l0 = [] l0.append(s0) l0.append(s1) l0.append(s2) l0.append(s3) print '无转码:{}'.format(str(l0).replace('u\'','\'').decode("unicode-escape")) print '不替换:{}'.format(str(l0).decode("unicode-escape")) l0 = [] l0.append(s0.encode('utf_8')) l0.append(s1.encode('utf_8')) l0.append(s2.encode('utf_8')) l0.append(s3.encode('utf_8')) print '无转码:{}'.format(str(l0).replace('u\'','\'').decode("unicode-escape")) print '不替换:{}'.format(str(l0).decode("unicode-escape")) l0 = [] l0.append(s0.decode('utf_8')) l0.append(s1.decode('utf_8')) l0.append(s2.decode('utf_8')) l0.append(s3.decode('utf_8')) print '无转码:{}'.format(str(l0).replace('u\'','\'').decode("unicode-escape")) print '不替换:{}'.format(str(l0).decode("unicode-escape"))结果: 有转码:['西0', '西1', '西2', '西2'] 不替换:[u'西0', u'西1', u'西2', u'西2'] 无转码:['西0', '西1', '\u897f2', '西2'] 不替换:['西0', u'西1', '\u897f2', u'西2'] 无转码:['西0', '西1', '\u897f2', '西2'] 不替换:['西0', '西1', '\u897f2', '西2'] 无转码:['西0', '西1', '\u897f2', '西2'] 不替换:[u'西0', u'西1', u'\u897f2', u'西2'] 总结:【python3】 文件默认编码是utf-8 , 字符串编码是 unicode 以utf-8 或者 gbk等编码的代码,加载到内存,会自动转为unicode正常显示。【python2】 文件默认编码是ascii , 字符串编码也是 ascii , 如果文件头声明了是gbk,那字符串编码就是gbk。以utf-8 或者 gbk等编码的代码,加载到内存,并不会转为unicode,编码仍然是utf-8或者gbk等编码。 |
CopyRight 2018-2019 实验室设备网 版权所有 |