码迷,mamicode.com
首页 > 编程语言 > 详细

python 处理字符编码问题

时间:2014-12-16 22:45:49      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:python   encoding problem   


今天好不容易重新开始写Python做实验,结果被字符编码虐的体无完肤。其实之前就已经比较清楚python处理字符编码的套路,但是今天白天反复的出现can‘t encode/decode ..., the original code not in 178之类的提示,甚是无力,后来偶尔使用了一下sys.setdefaultencoding(‘utf8‘)就解决了全部问题,真是不解。

下面还是总结一下Python几个编码设置的含义吧。

1. #coding=utf8

这种形式的注释告诉解释器,应该以coding指定的编码解析源文件,也就是指定脚本文件本身使用的编码。

2. sys.setdefaultencoding(‘utf8‘)

这种方式用于告诉python解释器应该以何种编码的方式解释str类型的字符串。python解释器默认的是‘ascii‘编码,可以通过sys.getdefaultencoding()的方式获得该编码信息。

如果想要使用sys.setdefaultencoding(‘utf8‘)重新指定str编码,那么需要reload(sys)才能调用setdefaultencoding()方法。

3. str和unicode

str和unicode是两个不同的工厂方法,产生str或者unicode对象。str方法相当于从一种编码encode到默认编码,而unicode相当于从一种编码decode到默认编码。需要注意的是通常来说默认编码是ascii的。

4. 处理字符串的套路

程序内部尽量全部使用unicode编码,也就是如果是一个字符串,则用u来修饰,如u‘你好‘。如果需要从文件中读入字符串内容,则decode成unicode;如果需要写出到文件或者输出,则encode到相应的编码即可。

希望后面在用python处理字符串编码问题的时候能够顺利解决吧,God bless me.


参考链接

http://www.cnblogs.com/huxi/articles/1897271.html

http://foofish.net/blog/16/understanding-python-charset


python 处理字符编码问题

标签:python   encoding problem   

原文地址:http://blog.csdn.net/geniusluzh/article/details/41966127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!