Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将表导出到YAML文件时遇到编码问题_Ruby On Rails_Utf 8_Yaml - Fatal编程技术网

Ruby on rails 将表导出到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

将表导出到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字符;我该怎么做呢?

您可以用它来清洁非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,我将尝试此方法。