繁体   English   中英

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

[英]invalid byte sequence in UTF-8 for single quote in Ruby

我正在使用以下代码在模板中显示描述:

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

参考: https : //stackoverflow.com/a/17028706/455770

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM