【发布时间】:2012-03-21 09:31:19
【问题描述】:
我有这个代码:
File.open(name, 'r+') do |f|
new_file = f.read.sub /ApplicationController/, 'AdminController'
f.truncate 0
f.write new_file
f.close
end
它应该用AdminController替换ApplicationController,然后截断文件,然后写入新内容,然后关闭它。
但是,当它截断文件,然后写入文件时,它看起来像这样:
0000 0000 0000 0000 0ef3
等等……
所以 truncate 正在将文件转换为十六进制。我需要它在 UTF-8 中。在写入文件之前如何确保文件是 UTF-8?
【问题讨论】:
-
好的,所以 truncate 正在将文件转换为十六进制。我需要它在 UTF-8 中。在写入文件之前如何确保文件是 UTF-8?
-
您运行的是什么操作系统?我刚刚在 Ubuntu 上运行它,它工作正常。
-
您可以使用
sed命令行实用程序获得相同的结果。
标签: ruby-on-rails ruby file truncate