python语法错误:编码问题:带BOM的windows1255

2024-09-29 19:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的简单代码:

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

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

print (str)

你能告诉我为什么我会犯这个错误吗

python SyntaxError: encoding problem: windows-1255 with BOM

非常感谢


Tags: 代码envbinwindowsusr错误print我会
1条回答
网友
1楼 · 发布于 2024-09-29 19:29:00

您将简单代码保存在显式包含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的问题的一个很好的讨论是The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

相关问题 更多 >

    热门问题