2012-02-01 99 views
10

我正在使用其他JavaScript文件串聯的Javascript文件。從文件中刪除多個BOM

不幸的是,將這些JavaScript文件連接在一起的人在閱讀文件時沒有使用正確的編碼,並且允許將每個JavaScript文件的BOM寫入連接的JavaScript文件。

有誰知道一個簡單的方法來搜索連接文件並刪除任何/所有BOM標記?

對於Mac OSX使用PHP或bash腳本會很好。

+0

有你使用記事本tryed ++,Encodage>選擇一個認爲應該在那裏,將其轉換回UTF8,NoBoms – 2012-02-01 18:05:21

+1

什麼是編譯JavaScript文件?你當然是指串聯或什麼? – mario 2012-02-01 18:11:34

+0

是的,連接,編輯。 – 2012-02-01 18:14:25

回答

13

參見:Using awk to remove the Byte-order mark

從任何地方的文本文件,你可以嘗試類似的東西內刪除多個材料明細表。剛剛離開了^錨:(。這個編輯就地文件,但創建一個備份file.js~

perl -e 's/\xef\xbb\xbf//;' -pi~ file.js 

0

我也想通了這個解決方案,它在PHP完全工作:

$packed = pack("CCC",0xef,0xbb,0xbf); 
$contents = preg_replace('/'.$packed.'/','',$contents); 
+1

鍵入'「\ 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

13

我通常做它用vim

vim -c "set nobomb" -c wq! myfile 
+0

這對我有用。我無法讓'sed'命令去掉它們。 – ibic 2017-04-07 07:25:05