ActionView中的escape_javascript方法将撇号'
作为反斜杠撇号\'
进行转义,这会在解析为JSON时给出错误。Rails escape_javascript通过转义单引号创建无效的JSON
例如, “我在这里” 的消息是有效的JSON当印:
{"message": "I'm here"}
但是,<%= escape_javascript("I'm here") %>
输出"I\'m here"
,导致无效的JSON:
{"message": "I\'m here"}
是否有修补程序来解决这个问题,或打印到JSON时转义字符串的替代方法?
如果字符串是HTML,例如在字符串中有双引号,则这不起作用。 – margusholland 2011-07-25 12:07:17
@margusholland - 不正确 - .to_json处理双引号完美转义 – Neall 2011-08-19 18:18:19
''foo'bar“.to_json'输出'”foo'bar“' – 2012-05-08 21:01:15