首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python :编码问题:使用BOM的windows-1255

python :编码问题:使用BOM的windows-1255
EN

Stack Overflow用户
提问于 2020-03-06 09:11:28
回答 1查看 442关注 0票数 0

这是我的简单代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: windows-1255 -*-

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

print (str)

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

代码语言:javascript
复制
python SyntaxError: encoding problem: windows-1255 with BOM

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2020-03-06 09:32:03

您将简单的代码保存在显式包含BOM的编码中--对于21世纪的编辑器来说,这很可能是UTF-8。在你的程序中没有非7位的ASCII字符,所以BOM是不必要的--但是计算机是出了名的哑巴,做你想做的事情。但是在脚本的顶部,您声明您使用的是一种完全类型的编码--一种不使用BOM的编码--因此Python会抱怨。

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

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: windows-1255 -*-

x

试着做这件事。

这有点出乎意料,因为要解析顶部的编码行,Python已经必须读取和跳过BOM。但是这种编码说不应该有BOM,所以必须--正如Python正确的结论--在某个地方出现错误。

不要躺在编码线或保存没有BOM,问题就消失了。如果无法找出编辑器为什么这样保存,或者无法找到如何正确保存正确的编码,请将顶部的行更改为

代码语言:javascript
复制
# -*- coding: utf-8 -*-

每个软件开发人员绝对、积极的绝对最低限度必须了解Unicode和字符集(没有借口!)很好地讨论了不同编码和Unicode的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60560807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档