【问题标题】:Error thrown even if a line is commented即使注释了一行也会引发错误
【发布时间】:2016-01-04 16:42:35
【问题描述】:

我有这行:

#str = u'Harsha: This has unicode character ♭.\n'

这行会导致SyntaxError: Non-ASCII character '\xe2',即使它被注释了。 如果我删除这一行,错误就消失了。谁能告诉我这里出了什么问题?
我使用 PyCharm 作为 IDE。

【问题讨论】:

  • 默认情况下,Python 使用 ASCII,而您希望保存 Unicode 值。

标签: python-2.7 encoding pycharm jetbrains-ide


【解决方案1】:

您想在源文件的顶部添加以下行:

# -*- coding: utf-8 -*-

这告诉python你的源文件的编码是什么。

来源:Working with utf-8 encoding in Python source

【讨论】:

  • 不知道实现了:)
  • 那行得通。以为以 # 开头的行只是作为 cmets 跳过。
【解决方案2】:

您需要提示正确的文件编码。

如您所知,字符 e2 由二进制字符串表示

1110 ...

这是模棱两可的,因为它可能是三元组的 UTF8 起始字节,或者只是扩展 ASCII 字符(这正是您想要的)。

Python 默认为 ASCII(7 位字符),这意味着如果不给出解析代码的任何提示,超过 7 位的所有内容都将被视为模棱两可,从而导致错误。

您应该转义该字符,或者如果可能的话提示 python 解释器这样做(我不知道是否可能,我只找到了一个建议,但我不知道是否已经实现)

【讨论】:

  • 看看瑞吉斯的回答,似乎python有提示的语法:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 2019-12-12
相关资源
最近更新 更多