专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

python转码有关问题

发布时间:2011-06-29 20:10:44 文章来源:www.iduyao.cn 采编人员:星星草
python转码问题
#coding=utf-8
k9 = {u'SIP_T_NAME': u'1.8TFSI MT\u8212\u9002\u578b', u'SIP_C_283': u'-', u'SIP_C_155': u'\u56fd\u56db'}
for i in k9:
  i = i.encode("utf-8")
  k9[i] = k9[i].encode("utf-8")
  print i+" = "+k9[i]

print k9
print str(k9).encode("utf-8")

结果是:
SIP_C_155 = 国四
SIP_C_283 = -
SIP_T_NAME = 1.8TFSI MT舒适型
{u'SIP_C_155': '\xe5\x9b\xbd\xe5\x9b\x9b', u'SIP_C_283': '-', u'SIP_T_NAME': '1.8TFSI MT\xe8\x88\x92\xe9\x80\x82\xe5\x9e\x8b'}

我的问题是为什么我在encode以后仍然不能直接打印出中文正常输出的形式呢,我想得出的结果是:
{'SIP_C_155':'国四', 'SIP_C_283':'-', 'SIP_T_NAME':'1.8TFSI MT舒适型'}

本人是小白,谢谢各位大仙帮助。

------解决方案--------------------
tim@tim-Vostro-200:~/桌面$ cat test.py 
#!/usr/bin/python2.7
# encoding: utf-8

import pprint
k9 = {
u'SIP_T_NAME': u'1.8TFSI MT\u8212\u9002\u578b', 
u'SIP_C_283': u'-',
u'SIP_C_155': u'\u56fd\u56db',
}

for i in k9:
i = i.encode("utf-8")
k9[i] = k9[i].encode("utf-8")
print i+" = "+k9[i]

print ''
print k9
print ''

def dict_str(d, coding='utf-8'):
return '{%s}'%(', '.join(["'%s': '%s'" % (k,v.decode(coding))
for k,v in d.items()]))

print dict_str(k9)
tim@tim-Vostro-200:~/桌面$ python test.py 
SIP_C_155 = 国四
SIP_C_283 = -
SIP_T_NAME = 1.8TFSI MT舒适型

{u'SIP_C_155': '\xe5\x9b\xbd\xe5\x9b\x9b', u'SIP_C_283': '-', u'SIP_T_NAME': '1.8TFSI MT\xe8\x88\x92\xe9\x80\x82\xe5\x9e\x8b'}

{'SIP_C_155': '国四', 'SIP_C_283': '-', 'SIP_T_NAME': '1.8TFSI MT舒适型'}
tim@tim-Vostro-200:~/桌面$ 
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: