2010-12-10 61 views
0

我正在解析來自Pokerstars的手歷史。解析文本文件時出錯,但在Textmate中打開/保存後出錯

我收到以下錯誤,當我嘗試直接從撲克之星文件解析手:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 

什麼是真正奇怪的是,我完全成功的解析與百工相同的內容如果我已將文本從pokerstars文本文件複製/粘貼到Textmate中並保存了Textmate .txt文件。

我在想這可能與Textmate默認使用的換行符或utf-8編碼有關,但我對這些問題沒有足夠的理解來解決問題。

EDIT

我現在已經確定,撲克之星文件是UTF-8編碼。我的下一個嫌疑犯是線人物問題的結束。

關於如何檢查文件中使用EOL字符的任何想法?並在改變這些新的?

還有其他想法嗎?我可能會缺少的東西?

回答

4

我懷疑這個問題的原因是BOM,看看這裏例如:

http://naturalcode.wordpress.com/2008/08/30/ruby-19-and-unicode-the-bom-will-fuck-your-shit-up/

How to avoid tripping over UTF-8 BOM when reading files

,並進一步谷歌如果某個答案沒有幫助。

+0

哇。我對此毫無頭緒。非常感謝Mladen。給你一個讚許和一個'很好的答案'。這是我能做的最不重要的事情。對於任何感興趣的人,我用正則表達式刪除了BOM:line.gsub!(「\ xEF \ xBB \ xBF」,'') – allesklar 2010-12-10 15:19:13