【发布时间】:2013-08-06 16:39:03
【问题描述】:
尝试将散列转换为 json 字符串时出现错误 JSON::GeneratorError: source sequence is illegal/malformed utf-8。我想知道这是否与编码有关,我怎样才能让 to_json 按原样对待 \xAE?
$ irb
2.0.0-p247 :001 > require 'json'
=> true
2.0.0-p247 :002 > a = {"description"=> "iPhone\xAE"}
=> {"description"=>"iPhone\xAE"}
2.0.0-p247 :003 > a.to_json
JSON::GeneratorError: source sequence is illegal/malformed utf-8
from (irb):3:in `to_json'
from (irb):3
from /Users/cchen21/.rvm/rubies/ruby-2.0.0-p247/bin/irb:16:in `<main>'
【问题讨论】:
-
以防万一您的意思是“按原样处理”,您可以对其进行双重转义: {"description"=> "iPhone\\xAE"}.to_json => "{\"description \":\"iPhone\\\\xAE\"}"