当我打电话:
velocityEngine.evaluate(velocityContext, writer, "", template);
与parameter.querystring
= {"hi": "\"hello\""}
后评价writer
包含{"hi": ""hello""}
题:
注:我不知道VelocityEngine,所以借此与一粒盐。
为什么速度删除逃逸字符?
最有可能的VelocityEngine读作个别字符串中parameter.querystring
JSON的值。因此字符串"\"hello\""
读作文字"hello"
。再后来的作家,它只是粘贴此字符串追溯到是。
我个人认为这是在作家的源代码中的缺陷,本应使用沿着Pattern.quote(String)
东西线插入之前逃脱的所有字符。
如何防止去除逃逸字符?
另外一个逃脱\
可以手动添加为工作四处寻找作家的行为。所以,你的parameter.querystring
将成为:
{"hi": "\\\"hello\\\""}
基本上文本\"hello\"
,其中两个\
和"
字符转义成一个额外的\
把它在java字符串。