2024-09-29 19:29:00 发布
网友
这是我的简单代码:
#!/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 # -*- 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!)
您将简单代码保存在显式包含BOM的编码中–对于21世纪的编辑器,最有可能是UTF-8。您的程序中没有非7位ASCII字符,因此BOM表是不必要的——但众所周知,计算机是哑的,可以按您的要求去做。但是,在脚本的顶部,您声明您使用的是一种完全不同的编码类型,而不是使用BOM,因此Python抱怨
顺便说一下,脚本中包含Unicode字符串这一事实并不重要。当您保存一个简单的
试着运行这个
这有点出乎意料,因为要解析顶部的编码行,Python必须读取并跳过BOM表。但是编码表示不应该有BOM,所以正如Python正确总结的那样,一定有某个地方出错
不要躺在编码行或保存没有BOM,问题就会消失。如果您无法找到编辑器以这种方式保存的原因,或者无法找到如何以正确的编码正确保存,请将顶部的行更改为
关于不同编码和Unicode的问题的一个很好的讨论是The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
相关问题 更多 >
编程相关推荐