我正在接受
JSON :: GeneratorError:源序列非法/格式错误utf-8
当我使用to_json
方法时。我没有在任何地方覆盖to_json
方法。
我已提及this question以及this one
但是由于Ruby 1.8没有字符串编码的概念,解决方案并没有帮助我。
如何在不要求转义特定的非ascii字符的情况下解决此问题?
我正在使用ruby 1.8.7
答案 0 :(得分:0)
我所知道的唯一Rails解决方案是:
# [AM] Monkeypatch to support multibyte utf-8
module ::ActiveSupport::JSON::Encoding
def self.escape(string)
if string.respond_to?(:force_encoding)
string = string.encode(
::Encoding::UTF_8,
:undef => :replace
).force_encoding(::Encoding::BINARY)
end
json = string.gsub(escape_regex) { |s| ESCAPED_CHARS[s] }
json = %("#{json}")
json.force_encoding(::Encoding::UTF_8) if json.respond_to?(:force_encoding)
json
end
end
我相信可能会有相同的补丁直接应用于JSON::GeneratorError
。