Ruby-读写';EOF';性格

Ruby-读写';EOF';性格,ruby,io,eof,Ruby,Io,Eof,我遇到一个需要解析的文档,其中包含一个旧的MS-DOS EOF字符(请参阅)。问题是Ruby不能读取这个字符。但是,我需要做的是读取包含此字符的行,然后原封不动地写回。 我认为写这个字符应该不会太难,因为我知道ASCII码,主要问题是Ruby在遇到这个字符后会停止读取文件。 我使用类似于以下代码的代码: lineNumber = 0 File.foreach(sourcePath) do |li| lineNumber = lineNumber + 1 end puts lineNum

我遇到一个需要解析的文档,其中包含一个旧的MS-DOS EOF字符(请参阅)。问题是Ruby不能读取这个字符。但是,我需要做的是读取包含此字符的行,然后原封不动地写回。
我认为写这个字符应该不会太难,因为我知道ASCII码,主要问题是Ruby在遇到这个字符后会停止读取文件。
我使用类似于以下代码的代码:

lineNumber = 0
File.foreach(sourcePath) do |li|
     lineNumber = lineNumber + 1
end
puts lineNumber

你用什么来读取文件?我在Linux下读取该符号时没有遇到任何问题:
p File.read my_File.path#⇒“Content\u001A Content 2”
。顺便说一句,我甚至猜不出ruby为什么读不过去。@mudasobwa:添加了一段代码片段。使用windows作为编码环境。那么,读取整个文件、做任何你想做的事情并像我上面所说的那样将其写回有什么问题呢?
foreach
的第二个参数是要使用的分隔符。我怀疑你是否想拆分字母
r
上的文件。你的意思是“\r”,还是你想要
:mode=>'r'
(或其他什么东西)?以二进制模式阅读有帮助吗(
:mode=>'rb'
)?