Ruby - 读取和写入“EOF”字符

Ruby - Read and Write 'EOF' Character

提问人:Chloiber 提问时间:5/13/2015 最后编辑:Chloiber 更新时间:5/13/2015 访问量:948

问:

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

lineNumber = 0
File.foreach(sourcePath) do |li|
     lineNumber = lineNumber + 1
end
puts lineNumber
红宝石 IO EOF

评论

1赞 Aleksei Matiushkin 5/13/2015
你用什么来读取文件?我在 Linux 下阅读该符号没有问题:.顺便说一句,我什至猜不出为什么 ruby 不会读过去。p File.read my_file.path #⇒"Content \u001A Content 2"
0赞 Chloiber 5/13/2015
@mudasobwa:添加了代码片段。使用 Windows 作为编码环境。
0赞 Aleksei Matiushkin 5/13/2015
那么,读取整个文件,随心所欲,然后按照我上面的指示写回去有什么问题呢?
1赞 matt 5/13/2015
第二个参数是要使用的分隔符。我怀疑你想拆分这封信上的文件.你的意思是“\r”,还是你想要(或其他东西)?foreachr:mode => 'r'
1赞 matt 5/13/2015
以二进制模式阅读有帮助吗()?:mode => 'rb'

答: 暂无答案