我正在尝试使用Python在缩小它们之前将几个javascript文件连接在一起,基本上是这样的:
outfile = open("output.js", "w")
for somefile in a_list_of_file_names:
js = open(somefile)
outfile.write(js.read())
js.close()
outfile.close()
minifier在每个文件的开头抱怨非法字符和语法错误,所以我做了一些诊断。
>>> r = open("output.js")
>>> somestring = r.readline()
>>> somestring
'\xef\xbb\xbfvar $j = jQuery.noConflict(),\n'
>>> print somestring
var $j = jQuery.noConflict(),
文件的第一行当然应该是“var $ j = jQuery.noConflict(),”
如果它有所作为,我在Windows中工作。
有什么想法吗?
编辑:这是我从缩放器中获得的内容:
U:\>java -jar c:\path\yuicompressor-2.4.2.jar c:\path\somefile.js -o c:\path\bccsminified.js --type js -v
[INFO] Using charset Cp1252
[ERROR] 1:2:illegal character
[ERROR] 1:2:syntax error
[ERROR] 1:3:illegal character
答案 0 :(得分:5)
这是一个UTF-8 BOM(字节顺序标记)。您可能已经使用记事本编辑了该文件。
答案 1 :(得分:4)
EF BB BF是Unicode字节顺序标记(BOM)。这些实际上在你的文件中。这就是Python看到它的原因。
忽略/丢弃BOM或重新编码文件以省略它。