编码:: UndefinedConversionError(" \ xE2"从ASCII-8BIT到UTF-8):基于ROR + MongoDB的应用程序中的错误

时间:2016-02-01 15:42:01

标签: ruby-on-rails mongodb encoding utf-8

如果开发人员编写此方法并导致Encoding :: UndefinedConversionError(" \ xE2"从ASCII-8BIT到UTF-8):错误。

此错误只是随机发生,因此进入的数据是原始数据库字段是造成问题的原因。但由于我对此无法控制,我可以在下面的方法中解决这些错误的数据并不会导致任何问题?

def scrub_string(input, line_break = ' ')
  begin
     input.an_address.delete("^\u{0000}-\u{007F}").gsub("\n", line_break)
  rescue
     input || ''
  end
end

这会有用吗?

 input = input.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_')

1 个答案:

答案 0 :(得分:2)

是的,这应该有用,它会替换任何不能用下划线转换成UTF-8的怪异角色。

在这里阅读有关在ruby中编码字符串的更多信息:

http://ruby-doc.org/core-1.9.3/String.html#method-i-encode