这是我的简单代码:
#!/usr/bin/env python
# -*- coding: windows-1255 -*-
str = "\u05dc\u05d9\u05d0\u05d5\u05e8"
print (str)你能告诉我为什么我会犯这个错误吗?
python SyntaxError: encoding problem: windows-1255 with BOM非常感谢
发布于 2020-03-06 09:32:03
您将简单的代码保存在显式包含BOM的编码中--对于21世纪的编辑器来说,这很可能是UTF-8。在你的程序中没有非7位的ASCII字符,所以BOM是不必要的--但是计算机是出了名的哑巴,做你想做的事情。但是在脚本的顶部,您声明您使用的是一种完全类型的编码--一种不使用BOM的编码--因此Python会抱怨。
顺便说一下,您的脚本中有Unicode字符串这一事实并不重要。当您保存一个简单的
#!/usr/bin/env python
# -*- coding: windows-1255 -*-
x试着做这件事。
这有点出乎意料,因为要解析顶部的编码行,Python已经必须读取和跳过BOM。但是这种编码说不应该有BOM,所以必须--正如Python正确的结论--在某个地方出现错误。
不要躺在编码线或保存没有BOM,问题就消失了。如果无法找出编辑器为什么这样保存,或者无法找到如何正确保存正确的编码,请将顶部的行更改为
# -*- coding: utf-8 -*-每个软件开发人员绝对、积极的绝对最低限度必须了解Unicode和字符集(没有借口!)很好地讨论了不同编码和Unicode的问题。
https://stackoverflow.com/questions/60560807
复制相似问题