即使一行被注释也会抛出错误
Error thrown even if a line is commented
我有这条线:
#str = u'Harsha: This has unicode character ♭.\n'
这一行导致 SyntaxError: Non-ASCII character '\xe2'
,即使它被注释了。
如果我删除这一行,错误就消失了。谁能告诉我这里有什么问题吗?
我正在使用 PyCharm 作为 IDE。
您想在源文件的顶部添加以下行:
# -*- coding: utf-8 -*-
这告诉 python 你的源文件的编码是什么。
来源:Working with utf-8 encoding in Python source
您需要提示正确的文件编码。
如你所知,字符e2
由二进制字符串
表示
1110 ...
这是模棱两可的,因为它可能是三元组的 UTF8 起始字节,或者只是一个扩展 ASCII 字符(这就是您想要的)。
Python 默认为 ASCII(7 位字符),这意味着如果不给出一些解析代码的提示,超过 7 位的所有内容都将被视为歧义,从而导致错误。
您应该转义该字符,或者如果可能的话提示 python 解释器这样做(我不知道是否可能,我只找到了一个建议,但我不知道是否可以已经实施)
我有这条线:
#str = u'Harsha: This has unicode character ♭.\n'
这一行导致 SyntaxError: Non-ASCII character '\xe2'
,即使它被注释了。
如果我删除这一行,错误就消失了。谁能告诉我这里有什么问题吗?
我正在使用 PyCharm 作为 IDE。
您想在源文件的顶部添加以下行:
# -*- coding: utf-8 -*-
这告诉 python 你的源文件的编码是什么。
来源:Working with utf-8 encoding in Python source
您需要提示正确的文件编码。
如你所知,字符e2
由二进制字符串
1110 ...
这是模棱两可的,因为它可能是三元组的 UTF8 起始字节,或者只是一个扩展 ASCII 字符(这就是您想要的)。
Python 默认为 ASCII(7 位字符),这意味着如果不给出一些解析代码的提示,超过 7 位的所有内容都将被视为歧义,从而导致错误。
您应该转义该字符,或者如果可能的话提示 python 解释器这样做(我不知道是否可能,我只找到了一个建议,但我不知道是否可以已经实施)