解析文本文件时出错,但在Textmate中打开/保存后没有错误

时间:2010-12-10 10:35:29

标签: ruby-on-rails ruby parsing

我正在解析Pokerstars的手牌历史。

当我尝试直接从Pokerstars文件解析手时,我收到以下错误:

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编码有关,但我对这些问题没有足够的了解来解决这个问题。

修改

我现在已确定Pokerstars文件是UTF-8编码的。我的下一个嫌疑人是行尾字符问题。

有关如何检查EOL字符的任何想法都在文件中使用?并将这些改为新的?

还有其他想法吗?我可能遗失的东西?

1 个答案:

答案 0 :(得分: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

并进一步谷歌,如果该特定答案没有帮助。