Python ASCII 文件中的 BOM 错误

5 投票
1 回答
6875 浏览
提问于 2025-04-15 22:07

我在使用Python 2.6的时候遇到了一个奇怪又烦人的问题。我想在我的嵌入式Linux ARM板子上运行这个文件(还有其他文件)。http://svn.tuxisalive.com/software_suite_v3/smart-core/smart-server/trunk/TDSService.py

结果我收到了这个错误:

文件 "tuxhttpserver.py",第1行 语法错误:编码问题:有 BOM

我知道这个错误是关于BOM字节的问题等等。但是,实际上没有BOM字节,文件就是普通的ASCII格式。我用十六进制编辑器检查过了,Linux的文件命令也显示它是ASCII格式。

我快要崩溃了……这段代码在我的Sheevaplug(也是基于ARM的系统)上运行得很好。

1 个回答

10

别太在意“带BOM”的说法,这可能没什么关系。这个错误通常意味着你正在运行的Python不支持你声明的编码。看看这个:

% head -1 tmp.py
# -*- coding: asdfasdfasdf -*-
% python tmp.py
  File "tmp.py", line 1
SyntaxError: encoding problem: with BOM

你在这个嵌入式Linux ARM板上运行的Python版本可能没有'latin-1'这种编码。因为你的源文件里没有任何非ASCII字符,所以你可以把编码声明为'ascii',或者干脆不声明编码。

撰写回答