我正在使用其他JavaScript文件串联的Javascript文件。从文件中删除多个BOM
不幸的是,将这些JavaScript文件连接在一起的人在阅读文件时没有使用正确的编码,并且允许将每个JavaScript文件的BOM写入连接的JavaScript文件。
有谁知道一个简单的方法来搜索连接文件并删除任何/所有BOM标记?
对于Mac OSX使用PHP或bash脚本会很好。
我正在使用其他JavaScript文件串联的Javascript文件。从文件中删除多个BOM
不幸的是,将这些JavaScript文件连接在一起的人在阅读文件时没有使用正确的编码,并且允许将每个JavaScript文件的BOM写入连接的JavaScript文件。
有谁知道一个简单的方法来搜索连接文件并删除任何/所有BOM标记?
对于Mac OSX使用PHP或bash脚本会很好。
参见:Using awk to remove the Byte-order mark
从任何地方的文本文件,你可以尝试类似的东西内删除多个材料明细表。刚刚离开了^
锚:(。这个编辑就地文件,但创建一个备份file.js~
)
perl -e 's/\xef\xbb\xbf//;' -pi~ file.js
我也想通了这个解决方案,它在PHP完全工作:
$packed = pack("CCC",0xef,0xbb,0xbf);
$contents = preg_replace('/'.$packed.'/','',$contents);
键入'“\ xef \ xbb \ xbf”'可能会更容易,请参阅[双引号字符串转义](http://www.php.net/manual/en/language.types.string.php#language.types .string.syntax.double)。 – Wrikken 2012-02-01 19:32:52
取BOM文件
grep -rIlo $’^\xEF\xBB\xBF’ ./
删除BOM文件
grep -rIlo $’^\xEF\xBB\xBF’ . | xargs sed –in-place -e ‘s/\xef\xbb\xbf//’
排除的.svn目录
grep -rIlo –exclude-dir=”.svn” $’^\xEF\xBB\xBF’ . | xargs sed –in-place -e ‘s/\xef\xbb\xbf//’
有你使用记事本tryed ++,Encodage>选择一个认为应该在那里,将其转换回UTF8,NoBoms – 2012-02-01 18:05:21
什么是编译JavaScript文件?你当然是指串联或什么? – mario 2012-02-01 18:11:34
是的,连接,编辑。 – 2012-02-01 18:14:25