2011-01-11 78 views
1

在我正在編輯的文件的開頭有奇怪的字符(使用文本..) 我不知道他們什麼時候出現,他們在textmate中是看不見的,但我的腳本讀取該文件去瘋狂..奇怪的字符在文件開頭

這是文件中的前幾個字符(如od命令所示):

0000000 177377 000120 000105 000117 000120 000114 000105 000072 

第2不應該有我想..也許他們造成由一些奇怪的Dropbox同步?還是其他什麼東西..但他們往往會再次出現(我還不知道什麼時候..)

我的問題:什麼是177377和簡單的方式在我的Ruby腳本刪除嗎? 謝謝

回答

5

000000 177377(十六進制0x0000FEFF)是一個byte-order mark(BOM)。它向消費者指出文件的其餘部分在big-endian UTF-32 encoding。這可能不是你的情況正確,但是這就是字節表示。

做什麼用的實在是有點棘手。一般來說,BOM 確實代表了以下數據的編碼:。檢測並跳過它,並將後續內容視爲在本地默認字符集中處理通常是錯誤的,儘管在這裏似乎是正確的。相反,我會試圖弄清楚爲什麼編輯器插入的BOM不正確以及是否有辦法禁用它。

+0

我認爲你是正確的它是一個BOM,但我的(誠然生鏽)八翻譯說o177 = 0x7F部分,不xFE如果。 – DaveE 2011-01-11 17:06:22