2012-02-01 9 views
10

他のJavaScriptファイルを連結したJavascriptファイルを使用しています。複数のBOMをファイルから削除する

残念ながら、これらのJavaScriptファイルを連結した人は、ファイルを読むときに適切なエンコーディングを使用せず、すべての単一のJavaScriptファイルにBOMを連結したJavaScriptファイルに書き込むことができました。

誰でも連結ファイルを検索し、すべてのBOMマーカーを削除する簡単な方法を知っていますか?

Mac OSX用のPHPまたはbashスクリプトを使用すると効果的です。

+0

をしようと試みてきた>がなければならないものを選択し、コンパイルJavascriptが何を提出されたバックUTF8-NoBoms –

+1

に変換?あなたは確かに連結されていることを意味しますか? – mario

+0

はい、連結され、編集されました。 –

答えて

13

も参照してください:Using awk to remove the Byte-order mark

は、あなたが似た何かを試すことができ、テキストファイル内の任意の場所から複数のBOMを削除するには。私もPHPで完全に動作します。このソリューションを考え出し

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

(これはインプレースのファイルを編集します。しかし、バックアップfile.js~を作成します。。)

0

$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

13

私は通常、それがvimを使用して行います。

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

これは私のために働いた。私は 'sed'コマンドでそれらを取り除くことができませんでした。 – ibic

0

BOMファイルに

grep -rIlo $’^\xEF\xBB\xBF’ ./

をフェッチ

grep -rIlo $’^\xEF\xBB\xBF’ . | xargs sed –in-place -e ‘s/\xef\xbb\xbf//’

DIR

grep -rIlo –exclude-dir=”.svn” $’^\xEF\xBB\xBF’ . | xargs sed –in-place -e ‘s/\xef\xbb\xbf//’

01の.svn除外BOMファイルを削除
関連する問題