美文网首页
python2的编码问题

python2的编码问题

作者: 不懒狮Blaise | 来源:发表于2018-02-05 19:35 被阅读0次

新手遇到编码问题都是很头疼的问题。

In [1]: a = u'你好'
In [2]: a
Out[2]: u'\u4f60\u597d'

In [4]: b = a.encode('utf8')
In [5]: b
Out[5]: '\xe4\xbd\xa0\xe5\xa5\xbd'

这个时候str(a)就报错了。
?[0;31mUnicodeEncodeError?[0m: 'ascii' codec can't encode characters in position 0-
1: ordinal not in range(128)

python str() 会把字符串转换为默认编码,然后转回utf8码, 如果没有setdefaultencoding,那么默认为ascii编码。
所以上面的子超出128,转换的时候就报错了。

类似的还有a+b, 会把b转换为unicode,这样首先要把utf8转码为ascii,但是系统不知道你是utf8,那么就报错了。

下面是解决版本

import sys
reload(sys)
sys.setdefaultencoding('utf8')
In [47]: a+b
Out[47]: u'\u4f60\u597d\u4f60\u597d'

因为系统把默认编码改为utf8, b转换为unicode就不用转为ascii了。

相关文章

  • python 编码问题总结记录

    Python2的默认编码ASCII,这是python编码问题的根本原因,可以想象,python3的编码问题肯定没有...

  • Python2和Python3的区别

    编码方式 编码 python2的默认编码是ascii,所以会导致经常会遇到编码问题文件中经常会写# coding=...

  • 学习资料

    简明python教程Python2字符编码问题小结stackoverflow about python

  • Python2编码问题

    Python2 源码编码 python2源码默认使用ascii进行编码,当源码中出现中文字符等非ascii编码的字...

  • Python2 编码问题

    一些定义 字符(character)字符是文字的最小的组成单位,其为一种抽象定义(不要与 java 或 c 中的 ...

  • python2编码问题

    由于工作的需要,用了很久的python3又转回来用Python2,所以编码问题又摆在了面前。先看一下python2...

  • Python2 编码问题

    python使用unicode作为中间编码 s.decode('gb2312') 表示将s以gb2312的方式解码...

  • python2 编码问题

    from future import unicode_literals import sysreload(sys)...

  • Python2编码问题

    Python2中系统默认编码是ASCII码,即使在文件中声明了coding为utf-8,在执行str(unicod...

  • python2的编码问题

    新手遇到编码问题都是很头疼的问题。 这个时候str(a)就报错了。?[0;31mUnicodeEncodeErro...

网友评论

      本文标题:python2的编码问题

      本文链接:https://www.haomeiwen.com/subject/xapszxtx.html