Ruby on rails 将表导出到YAML文件时遇到编码问题
将表导出到yaml文件时,出现以下错误:Ruby on rails 将表导出到YAML文件时遇到编码问题,ruby-on-rails,utf-8,yaml,Ruby On Rails,Utf 8,Yaml,将表导出到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.fo
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字符;我该怎么做呢?您可以用它来清洁非utf8字符。
您可以尝试str.encode('utf-8',:invalid=>:replace,:replace=>''),由于某种原因,它对我不起作用。您可以尝试的另一件事是使用ASCII-8BIT编写文件,如file.open('file.yml','w:ASCII-8BIT')您可以用于清理非utf8字符。
您可以尝试str.encode('utf-8',:invalid=>:replace,:replace=>''),由于某种原因,它对我不起作用。您可以尝试的另一件事是用ASCII-8BIT写入文件,如file.open('file.yml','w:ASCII-8BIT')这为我修复了这个错误:
myString.unpack('U*').pack('U*')
这为我修复了此错误:
myString.unpack('U*').pack('U*')
酷。最终转储到JSON而不是YAML,从而解决了问题。如果我必须再次使用YAML,我会试试这个。酷。最终转储到JSON而不是YAML,从而解决了问题。如果我必须再次使用YAML,我将尝试此方法。