我刚刚发现 String.encode 方法仅适用于 Ruby -v 1.9.3 及更高版本。我在 Rails 环境中工作,我无法改变这一点。我使用这种方法来纠正无效的 UTF-8 输入。
我发现的唯一不错的选择是通过 iconv.conv() 方法,但是 iconv 在较新的 ruby 版本中已被弃用,我希望我的代码闻起来像花一样,即使/当我的系统管理员决定升级时。
作为参考,我从这里找到的替代方案:
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
谢谢!