即使注释了一行,也会抛出错误

时间:2015-10-07 12:37:17

标签: python-2.7 encoding pycharm jetbrains-ide

我有这一行:

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

此行会导致SyntaxError: Non-ASCII character '\xe2',即使它已被评论。 如果我删除此行,则错误消失。谁能告诉我这里有什么问题?
我正在使用PyCharm作为IDE。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

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

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

表示
1110 ...

这是ambiguos因为它可能是三元组的UTF8起始字节,或者只是一个扩展的ASCII字符(这就是你想要的)。

Python默认为ASCII(7位字符),这意味着如果不提供一些提示来解析代码,那么每次超过7位都将被视为模糊,从而导致错误。

你应该改为逃避那个角色,或者如果可能的话暗示python解释器这样做(我不知道是否可能,我只找到了一个提案,但我不知道是否已实现)