【问题标题】:Encoding issue in pythonpython中的编码问题
【发布时间】:2014-07-10 12:47:56
【问题描述】:

所以,我读了很多问题,但每个问题都忘了在开头加上 # coding: <encoding> 字符串,或者类似的东西。

我的问题是这个,按时间顺序排列。

1) 我在使用西里尔文字时也忘记了编码

2) 我说的是:没用

3) 我输入了from __future__ import unicode_literals 还是不行。

4) 我注释掉了导致它的字符串。没用。震惊。

5) 我(手动)回滚到我以前的版本,完全删除了所有更改。不工作。

所以,这是我的回溯,在第一行我只有 import tweepy,它显然没有任何 unicode 文字(在寻找问题原因的过程中删除了 shebang)

    Traceback (most recent call last):
  File "E:\Coding\PyCharm 3.1\helpers\pydev\pydevd.py", line 1534, in <module>
    debugger.run(setup['file'], None, None)
  File "E:\Coding\PyCharm 3.1\helpers\pydev\pydevd.py", line 1145, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "C:/Users/tibur_000/PycharmProjects/Twelcome/TWelcome.py", line 1
SyntaxError: Non-ASCII character '\xfe' in file
C:/Users/tibur_000/PycharmProjects/Twelcome/TWelcome.py on line 1,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

【问题讨论】:

  • 您的源代码似乎在第一行包含一个\xfe 字节。这通常是由于文件开头的\xfe\xff UTF-16 big-endian BOM character。您是否将源代码保存为 UTF16?
  • PyDev 说文件的编码是什么?另见jetbrains.com/pycharm/webhelp/…
  • @MartijnPieters 好吧,我不知道为什么会这样,但似乎 PyCharm 确实在某个时候转换了它。我在您的链接的帮助下将其转换回来。非常感谢。

标签: python unicode encoding pep


【解决方案1】:

您的文件似乎以BOM character 开头;您可能以 UTF 编码保存了文件。

如果您实际上并未在源代码中使用非 ASCII 文本,您可能希望切换回对文件使用 ASCII 编码。否则,您必须指定 PEP 263 codec declaration 中使用的 UTF 编解码器。

但是,如果它使用 UTF-16 或 UTF-32,请选择不同的编解码器。 Python 2 不支持编码为这些编码的源代码。

在 PyCharm 中,您可以通过“文件”>“文件编码”菜单选项或状态栏更改用于单个文件的编码。见PyCharm help information

【讨论】:

    猜你喜欢
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多