我最近将一个应用程序从Ubuntu移到了一个Redhat服务器上,并注意到编写一个文件时出现了差异,编写了\ r \ n而不是简单地编写\ n。
我在要写入的数据中明确设置\ n。所以,例如
data = "Hello\nWorld"
File.open("#{ Rails.root }/tmp/file.txt", "wb") { |f| f.write(data) }
写的是“Hello \ r \ nWorld”。
我知道Ruby会根据正在运行的系统设置换行符,但是有没有办法强制它来保持\ n无论系统是什么?
答案 0 :(得分:-1)
不要将转义序列放在双引号中,因为ruby会查找替换并用一些二进制值替换它们。
如果你想强制执行ruby以保持相同的状态,例如' \ n'比你必须使用单引号。
示例:
data =' Hello \ nWorld'
File.open("#{Rails.root} /tmp/file.txt" ;," wb"){| f | f.write(data)}
它会保持不变。 :)