簡體   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