ruby 中文字符to_json后乱码(unicode)

  今天遇到一个中文to_json问题

text = "第1章 青豆 不要被外表骗了"
text.to_json
=> "\"\\u7b2c1\\u7ae0 \\u9752\\u8c46 \\u4e0d\\u8981\\u88ab\\u5916\\u8868\\u9a97\\u4e86\""

中文to_json 就变成unicode

 

解决办法:

gsub(/\\u([0-9a-z]{4})/){|s| [$1.to_i(16)].pack("U")}

text.to_json.gsub(/\\u([0-9a-z]{4})/){|s| [$1.to_i(16)].pack("U")}
=> "\"第1章 青豆 不要被外表骗了\""

 

posted @ 2015-12-10 11:51  wangyuyu  阅读(1417)  评论(0编辑  收藏  举报