zoukankan      html  css  js  c++  java
  • python改变默认编码

    Python当前的默认编码设置setdefaultencoding
    2007年08月07日 星期二 下午 09:25

    在Python开发过程中,常常会遇到这样的问题,很让人头疼:
    ......
    print s
    ......

    Traceback (most recent call last):
       File "<stdin>", line 1, in ?
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

    究其原因,是想要在屏幕上输出的字符,不符合当前设定终端编码。在上面这个例子中,当前终端的编码设置为ascii,而欲输出的字符为utf-8编码,ascii的每个字符的十进制编码都在0-128以内,当然无法识别utf-8的编码。

    要解决这个问题,首先修改终端的字符编码设置:
    >>> import sys
    >>> sys.getdefaultencoding()
    'ascii'

    可以看到,当前的默认编码是ascii,要修改这个设置,可以在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件(也可以建在其它地方,然后手工导入,建在这里,每次启动Python的时候设置将自动生效),内容如下:
    import sys
    sys.setdefaultencoding('utf-8') #set default encoding to utf-8

    然后可以查看到改变已经生效
    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'

    此时运行程序,如果仍然报告之前的错误,只需要显示地设定输出的编码
    print s.encode('utf-8')
    就可以看到正确显示。

  • 相关阅读:
    DGL学习(六): GCN实现
    DGL学习(五): DGL构建异质图
    DGL学习(四): 图分类教程
    LuoGuP2495:[SDOI2011]消耗战
    LuoGuP1121:环状最大两段子段和
    LuoGuP3177:[HAOI2015]树上染色
    LuoGuP2607:[ZJOI2008]骑士
    HDU4283:You Are the One
    LuoGuP4294:[WC2008]游览计划
    LuoGuP4127:[AHOI2009]同类分布
  • 原文地址:https://www.cnblogs.com/lexus/p/1839409.html
Copyright © 2011-2022 走看看