是否可以在ruby中读取文件时指定换行符类型

时间:2012-06-19 00:50:53

标签: ruby character-encoding

我经常处理在具有\ r \ n回车符的窗口上编码的UTF-16LE文件。使用以下命令将文件转换为UTF-8没有问题:

File.new(filepath, 'r:utf-16le:utf-8')

但这当然不会摆脱\ r。我目前摆脱它们的方式是

str.gsub("\r", "")

但是在读取文件时要好好处理它。字符串#coding有:cr_newline,:crlf_newline和:universal_newline选项,它们将所有换行符转换为所需类型的换行符。有没有办法在读取文件时应用这些或类似的选项?

1 个答案:

答案 0 :(得分:1)

方法IO#gets采用一个可选参数,允许您传递字符串以定义如何分隔行:

file = File.new(filepath, 'r:utf-16le:utf-8')
while (line = file.gets("\r\n"))
   ...
end