python2.7编码的问题

来源:互联网 发布:mac地址是什么意思 编辑:程序博客网 时间:2024/05/22 14:14

python2.7默认的ascii编码,遇到中文时会出现一大堆毛病。

网上有相关的文章,可以看一看,在这儿根据我实际中的问题补充几点:

1、对于中文的输出,特别是输出到文件中去,需要在编码开题加上 #coding:utf-8,中文字符需要做相应的编码转换。如:

str = u'<div>啦啦啦,德玛西亚</div>'e=str.encode('utf-8')with open('out.txt','w') as f:    f.write(e)#而打印(print),直接打印就行了。print str

2、对于字典是输出。字典中包含中文时,输出到文件依旧想显示为中文,需要做一些变换:

#!/usr/bin/python# encoding:utf-8import jsondef dump(lst):    fp = open("lst.utf8", "w")    fp.write(json.dumps(lst, ensure_ascii=False))    fp.close()if __name__ == '__main__':    dump([{'name': '北京', 'zone': 10}, {'name': '重庆', 'zone': 20}])#结果为:#[{"name": "北京", "zone": 10}, {"name": "重庆", "zone": 20}]

当字典中包含unicode编码字符时候,需要将所有的unicode编码转换成utf-8编码。

方法就是对每个关键字重新赋值,赋予转码后的值。


3、从文件中读取的时候,需要注意编码问题外。还要注意某些软件会在文本开头插入BOM。notepad++可以处理编码问题,以及BOM开头带来的问题。




以上两步基本上可以解决所见到的所有编码问题。算是慢慢明白廖雪峰老司机所说的仅需要记住unicode和utf-8编码的原因了。




0 0
原创粉丝点击