在我的控制器中,以下工作(打印"oké")
puts obj.inspect
Run Code Online (Sandbox Code Playgroud)
但这不会(呈现"ok\u00e9")
render :json => obj
Run Code Online (Sandbox Code Playgroud)
显然,该to_json
方法会转义unicode字符.有没有办法防止这种情况发生?
Rails 3:
{"a" => "<br/>"}.to_json
=> "{\"a\":\"<br/>\"}"
Run Code Online (Sandbox Code Playgroud)
导轨4:
{"a" => "<br/>"}.to_json
=> "{\"a\":\"\\u003Cbr/\\u003E\"}"
Run Code Online (Sandbox Code Playgroud)
为什么???
它似乎导致错误
Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8
Run Code Online (Sandbox Code Playgroud)
当我的Rails 3应用程序尝试解析我的rails 4应用程序生成的JSON时.
在我的应用程序的所有页面上,我想要一个指向当前页面的JSON版本的链接.这样做的任何巧妙的技巧?它变得复杂的地方是URL中包含额外的'&'参数.
因此,网址将被转换为:
'/users' => '/users.json'
'/users?page=1&per_page=5' => '/users.json?page=1&per_page=5'
Run Code Online (Sandbox Code Playgroud)