python语法错误:编码问题:带BOM的windows-1255

python语法错误:编码问题:带BOM的windows-1255,python,encoding,hebrew,windows-1255,Python,Encoding,Hebrew,Windows 1255,这是我的简单代码: #!/usr/bin/env python # -*- coding: windows-1255 -*- str = "\u05dc\u05d9\u05d0\u05d5\u05e8" print (str) 你能告诉我为什么我会犯这个错误吗 python SyntaxError: encoding problem: windows-1255 with BOM 非常感谢您将简单代码保存在一种编码中,该编码明确包含BOM–对于21世纪的编辑器来说,最有可能是UTF-8。您

这是我的简单代码:

#!/usr/bin/env python
# -*- coding: windows-1255 -*-

str = "\u05dc\u05d9\u05d0\u05d5\u05e8"

print (str)
你能告诉我为什么我会犯这个错误吗

python SyntaxError: encoding problem: windows-1255 with BOM

非常感谢

您将简单代码保存在一种编码中,该编码明确包含BOM–对于21世纪的编辑器来说,最有可能是UTF-8。您的程序中没有非7位ASCII字符,因此BOM表是不必要的——但众所周知,计算机是哑的,可以按您的要求去做。但在脚本的顶部,您声明您使用的是一种完全不同的编码类型——一种不使用BOM的编码类型——因此Python会抱怨

顺便说一下,脚本中包含Unicode字符串这一事实并不重要。当您保存一个简单的

#/usr/bin/env python
#-*-编码:windows-1255-*-
x
试着运行这个

这有点出乎意料,因为要解析顶部的编码行,Python必须读取并跳过BOM表。但这种编码表示不应该有BOM,所以正如Python正确地总结的那样,一定有某个地方出现了错误

不要躺在编码行或保存没有BOM,问题就会消失。如果您无法找到编辑器以这种方式保存的原因,或者无法找到如何以正确的编码正确保存,请将顶部的行更改为

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

关于不同编码和Unicode的问题的一个很好的讨论是。

您好,谢谢您的回答。Python对我来说是相当陌生的。你能给我看看我的案例的正确脚本吗?谢谢大家!@user1074988:添加了更详细的解决方案