python中各种编解码汇总

1.对于’\u9500\u552e’, u’\u9500\u552e’, ‘\u9500\u552e’, u’\u9500\u552e’

s1 = '\\u9500\\u552e'
s2 = u'\\u9500\\u552e'
s3 = '\u9500\u552e'
s4 = u'\u9500\u552e'
print s1,s2,s3,s4
print s1.decode('unicode_escape'),s2.decode('unicode_escape'),s3.decode('unicode_escape'),s4.decode('unicode_escape')
print '"{0}"'.format(s1),'"{0}"'.format(s2),'"{0}"'.format(s3)
print json.loads('"{0}"'.format(s1)),json.loads('"{0}"'.format(s2)),json.loads('"{0}"'.format(s3))
>>
\u9500\u552e \u9500\u552e \u9500\u552e 销售
销售 销售 销售 (error)
"\u9500\u552e" "\u9500\u552e" "\u9500\u552e" (error)
销售 销售 销售 (error)

2.对于’\xe7\xbb\x87\xe7\x89\xa9’, ‘\xe7\xbb\x87\xe7\x89\xa9’

s = '\\xe7\\xbb\\x87\\xe7\\x89\\xa9'
s1 = '\xe7\xbb\x87\xe7\x89\xa9'
l = ['织物']
l1 = [u'织物']
l2 = str(l).decode('string-escape')
l3 = str(l1).decode('unicode-escape')
print s,s1,l,l1,l2,l3
print s.decode('string-escape')

>>
\xe7\xbb\x87\xe7\x89\xa9 织物 ['\xe7\xbb\x87\xe7\x89\xa9'] [u'\u7ec7\u7269'] ['织物'] [u'织物']
织物

3.编解码方式

GBK 编码一个汉字两个字节,UTF-8 一个汉字通常3个字节。
解码:从其它编码变成unicode,用的方法是decode(param),第一个参数为被解码的字符串原始编码格式
编码:从utf-8转换为gbk,必须经过unicode中间转换,被编码的字符串必须为unicode

g = '\xd6\xd0\xce\xc4'   # gbk 中文
u = '\xe4\xb8\xad\xe6\x96\x87'   # unicode 中文
print type(g)
print g
print type(u)
print u
gg = g.decode('gbk')
uu = u.decode('utf-8')
print type(gg)
print gg
print type(uu)
print uu

>>
<type 'str'>
����
<type 'str'>
中文
<type 'unicode'>
中文
<type 'unicode'>
中文
发布了1 篇原创文章 · 获赞 0 · 访问量 28

猜你喜欢

转载自blog.csdn.net/njiuni/article/details/104067766