如题,把 {:title=>"水浒传", :author=>"施耐庵"}.to_json 就转成下面这样了 {"title":"\u6c34\u6d52\u4f20","author":"\u65bd\u8010\u5eb5"}
有没有办法不转换呢
Monkey Patch? 应该不是个好主意。 楼主为什么要禁止转换呢?
我一般是这个样子用的: gsub(/\\u([0-9a-z]{4})/){|s| [$1.to_i(16)].pack("U")}
gsub(/\\u([0-9a-z]{4})/){|s| [$1.to_i(16)].pack("U")}
下面是测试的例子:
o = {:name=>"米乐游戏",:age=>1} => {:name=>"米乐游戏", :age=>1} [26] pry(main)> o.to_json => "{\"name\":\"\\u7c73\\u4e50\\u6e38\\u620f\",\"age\":1}" [27] pry(main)> o.to_json.gsub(/\\u([0-9a-z]{4})/){|s| [$1.to_i(16)].pack("U")} => "{\"name\":\"米乐游戏\",\"age\":1}" [28] pry(main)>
#2 楼 @lb563 学习了
#1 楼 @heliang7 要写到文件中,而不是返回给浏览器
#2 楼 @lb563 多谢指教~
我的方法是这样的
array = [{name: name1, age: 20}, {name:name2, age: 20}] File.open("file.yml", 'w:ASCII-8BIT:utf-8') do |file| YAML.dump(array, file) end
#6 楼 @ywjno YAML 可以,但是 JSON 好像不行呢
#7 楼 @nilisnil 抱歉啊。。。听到你说要写到文件里,还以为是把那串东西先to_json再写进去
to_json
#8 楼 @ywjno 是先 to_json 再写进去,但是你写的是 yaml 又不是 json