Python ASCII 文件中的 BOM 错误
我在使用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',或者干脆不声明编码。