由于编码不同,Ruby和Mac OS中的文件读取差异

时间:2015-04-30 16:00:37

标签: ruby file encoding

我在mac上有一个test.conf文件。我从web位置下载它作为application / octet。

当我使用命令行检查mime类型时,我得到:

 file -Ib ~/test.conf 
 text/plain; charset=us-ascii

但在Ruby的IRB中,我认为它是utf-8:

 irb(main):039:0> f = File.open("test.conf")
 => #<File:test.conf>
irb(main):040:0> f.external_encoding
=> #<Encoding:UTF-8>
irb(main):041:0> contents = f.read
irb(main):042:0> contents.encoding
=> #<Encoding:UTF-8>

因此,当我尝试使用File.foreach打开文件一次读取一行时,我得到52行,而

cat ~/test.conf | wc -l
12

所以我的困境在于,如何确保Ruby看到与cat命令相同的行数?

0 个答案:

没有答案