0

将表导出到 yaml 文件时出现以下错误:

Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8

这是生成错误的代码:

  File.open("#{Rails.root}/lib/users.yml", 'w') do |file|
    users = User.all
    YAML::dump(users, file)
  end

我已经尝试对所有用户模型的内容属性执行此操作:

about_me.force_encoding("utf-8")
save

……显然无济于事。我是否正确强制编码?有没有其他方法可以解决这个问题?我不介意去掉非 utf8 字符;我怎样才能做到这一点?

4

2 回答 2

2

这为我解决了这个错误:

myString.unpack('U*').pack('U*')
于 2013-03-07T21:23:10.323 回答
1

您可以使用https://github.com/astro/utf8cleaner清理非 utf8 字符。您可以尝试 str.encode('utf-8', :invalid => :replace, :replace => ''),由于某种原因对我不起作用。您可以尝试的另一件事是以 ASCII-8BIT 编写文件,例如 File.open('file.yml', 'w:ASCII-8BIT')

于 2012-10-10T23:39:03.200 回答