2011-01-11 10 views
1

編集中のファイルの先頭に奇妙な文字があります(textmate ..を使用しています) 出現時期はわかりませんが、テキストメイトでは表示されませんが、最初の2、私は...多分彼らが引き起こされたと考えがあってはならないファイルの先頭に奇妙な文字があります

0000000 177377 000120 000105 000117 000120 000114 000105 000072 

:ファイルが、これはファイルの最初の数文字(ODコマンドで見られるような)である

..クレイジーいくつかの奇妙なDropboxの同期によって?または何か他の..しかし、彼らは再現する傾向があります(私はまだ知らない... ..)

私の質問:それは何ですか177377と私のルビースクリプトでそれを削除する簡単な方法は? ありがとう

答えて

5

000000 177377(16進数0x0000FEFF)はbyte-order mark(BOM)です。これは、ファイルの残りがbig-endian UTF-32 encodingにあることを消費者に示します。あなたのケースではが正しくないかもしれませんが、それはバイトの意味です。

どうすればいいですか。一般に、BOM が以下のデータのエンコーディングを正確に表現しています。それを検出してスキップし、後続のコンテンツをローカルのデフォルトの文字セットにあるものとして扱うことは、ここでは正しいように見えますが、通常は間違ったことになります。代わりに、あなたのエディタが間違ったBOMを挿入する理由と、それを無効にする方法があるかどうかを調べようとします。

+0

あなたはそれがBOMであることについてあなたは正しいと思うが、私の(確かに錆びた)8進変換はxFEではなくo177 = x7Fと言う。 – DaveE

+2

http://calc.50x.eu/をチェックし、オクタル177377を接続します(半角で6桁の数字を2桁に分けることはできません。ビット数は機能しません)。 – dkarp

+0

btw Ruby octalリテラルは数字の先頭に0が付いているので、 '%X 'で確認できます。%0177377#=>" FEFF "' – zetetic

関連する問題