我正在写一些python代码,我收到了标题中的错误消息,从搜索这与字符集有关。

这是导致错误的行

hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html")

我不知道什么字符不是在ANSI ASCII集?此外,搜索“\xe2”并不能提供关于该字符显示为什么字符的更多信息。这一行中的哪个字符导致了问题?

我还看到了针对这个问题的一些修复程序,但我不确定该使用哪个。有人能澄清什么是问题(python不解释unicode,除非被告知这样做?),以及我将如何正确地清除它?

编辑: 这是出错的那条线附近的所有线

def createLoadBalancer():
    conn = ELBConnection(creds.awsAccessKey, creds.awsSecretKey)
    hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html")
    lb = conn.create_load_balancer('my_lb', ['us-east-1a', 'us-east-1b'],[(80, 8080, 'http'), (443, 8443, 'tcp')])
    lb.configure_health_check(hc)
    return lb

当前回答

我从网上复制粘贴评论时也犯了同样的错误

对我来说,它是单词中的一个引号(')

我只是擦掉,重新打了一遍。

其他回答

我从网上复制粘贴评论时也犯了同样的错误

对我来说,它是单词中的一个引号(')

我只是擦掉,重新打了一遍。

我在运行下面简单的.py代码时遇到了这个问题:

import sys
print 'version is:', sys.version

DSM的上述代码提供了以下内容:

1 'print \xe2\x80\x98version is\xe2\x80\x99, sys.version'

所以问题是我的文本编辑器使用了SMART QUOTES,就像John Y建议的那样。在更改文本编辑器设置并重新打开/保存文件后,它可以正常工作。

或者你可以简单地用:

# coding: utf-8

在.py文件的顶部

在花了大约半小时的时间查看堆栈溢出后,我突然意识到,如果在注释中使用单引号“'”将会通过错误:

SyntaxError: Non-ASCII character '\xe2' in file

在查看traceback后,我能够找到在我的评论中使用的单引号。

我用pycharm修复了这个问题。在pycharm的底部可以看到文件编码。我注意到它是UT-8。我把它改成了US-ASCII