2

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

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

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

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

但是在读入文件时最好注意一下。 String#encode 有 :cr_newline、:crlf_newline 和 :universal_newline 选项,它们可以将所有换行符转换为所需的换行符。有没有办法在读取文件时应用这些或类似的选项?

4

1 回答 1

1

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

file = File.new(filepath, 'r:utf-16le:utf-8')
while (line = file.gets("\r\n"))
   ...
end
于 2012-06-19T05:49:06.537 回答