【问题标题】:Why is my defaultencoding ‘utf-8’ with python 2.7.2?为什么我的默认编码是 python 2.7.2 的“utf-8”?
【发布时间】:2012-10-18 07:23:45
【问题描述】:

在 Python 中,defaultencoding 存储在 'unicode_default_encoding' 中,我找到了所有 Python 源代码,有 2 个函数。

  1. _PyUnicode_Init() //strcpy(unicode_default_encoding, "ascii");
  2. setencoding() 在 site.py 中

所以没有人修改默认编码。那为什么我的默认编码是'utf-8'呢?

【问题讨论】:

  • 您的 python 安装文件夹中是否有文件 lib/site-packages/sitecustomize.py 或者文件 sitecustomize.py 在 python 搜索路径中的任何位置?它用于更改默认编码。见stackoverflow.com/a/7105835/637284
  • 您在使用 Eclipse 吗? Eclipse Pydev IDE,默认字符编码设置为 utf-8。所以可能是环境问题。一些开发工具会更改默认设置,以使其对用户“更好”。
  • 我的python中没有sitecustomize.py,我只是在没有任何IDE的情况下在shell中运行python

标签: python python-2.7


【解决方案1】:

看起来site.py中的设置会影响默认编码。

查看http://blog.ianbicking.org/illusive-setdefaultencoding.html

直接编辑 site.py(在标准库中)。似乎是个坏主意。虽然也许我会删除 del sys.setdefaultencoding 行...无论如何,site.py 也可能出现在您计算机上的其他位置(例如,/etc/pythonX.Y/site.py)。

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 2014-04-23
    • 1970-01-01
    • 2016-08-06
    • 2012-02-14
    • 1970-01-01
    • 2012-03-10
    • 2012-02-01
    • 2015-04-08
    相关资源
    最近更新 更多