我正在写一些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

当前回答

我得到了这个错误的字符在我的评论(复制/粘贴内容从网络到我的编辑器做笔记的目的)。

在文本牧马人解决:

突出显示文本 进入文本菜单 选择“转换为ASCII”

其他回答

我得到了这个错误的字符在我的评论(复制/粘贴内容从网络到我的编辑器做笔记的目的)。

在文本牧马人解决:

突出显示文本 进入文本菜单 选择“转换为ASCII”

如果这对任何人都有帮助的话,对我来说,这是因为我试图用python 2.7命令在python 3.4中运行Django实现

这里有很多好的解决方案。

其中没有真正解决的一个挑战是如何从视觉上识别某些难以识别的与其他纯ASCII字符相似的非ASCII字符。例如,破折号看起来几乎完全像连字符,大括号看起来很像直引号,这取决于文本编辑器的字体。

这一行代码应该在Mac或Linux上运行,它将剥离不在ASCII可打印范围内的字符,并并排显示差异:

# assumes Bash shell; for Bourne shell (sh), rearrange as a pipe and
# give '-' as second argument to 'sdiff' instead
sdiff --suppress-common-lines script.py <(tr -cd '\11\12\15\40-\176' <script.py)

字符\11、\12和\15分别是八进制的制表符、换行符和回车符;剩余的范围是可见的ASCII字符。(帽尖)

从这个SO线程中收集到的另一个技巧使用了一个逆字符类,由ASCII可见范围之外的任何内容组成,并突出显示它:

grep --color '[^ -~]' script.py

对于grep的macOS / BSD版本,这也可以很好地工作。

当我在阅读文本文件时遇到类似的问题时,我使用…

f = open('file','rt', errors='ignore')

我很长时间都找不到问题所在,但后来我意识到我从web中复制了一行“UTC-12:00”,其中的连字符/破折号导致了问题。我再写一遍“-”,问题就解决了。

有时候复制粘贴行也会出错。在这种情况下,只需重写复制粘贴的代码,它就可以工作。在重写时,它看起来像什么都没有改变,但错误将会消失。