Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 Ruby中单引号的UTF-8中的字节序列无效_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Ruby中单引号的UTF-8中的字节序列无效

Ruby on rails Ruby中单引号的UTF-8中的字节序列无效,ruby-on-rails,ruby,Ruby On Rails,Ruby,我使用以下代码在模板中显示说明: json.description resource.description if resource.description.present? 它给出了UTF-8错误中无效的字节序列。我对此进行了一点挖掘,发现问题在于我的描述中只有一句话是“代替”。想知道解决这个编码问题的最佳方法是什么?说明由用户输入,我无法控制。另一个奇怪的问题是,我有多个测试环境,它们都有相同的Ruby和Rails版本,并且运行相同的代码,但是只有一个环境有这个错误 def to_utf8

我使用以下代码在模板中显示说明:

json.description resource.description if resource.description.present?
它给出了UTF-8错误中无效的字节序列。我对此进行了一点挖掘,发现问题在于我的描述中只有一句话是“代替”。想知道解决这个编码问题的最佳方法是什么?说明由用户输入,我无法控制。另一个奇怪的问题是,我有多个测试环境,它们都有相同的Ruby和Rails版本,并且运行相同的代码,但是只有一个环境有这个错误

def to_utf8(str)
  str = str.force_encoding("UTF-8")
  return str if str.valid_encoding?
  str = str.force_encoding("BINARY")
  str.encode("UTF-8", invalid: :replace, undef: :replace)
end
参考: