VelocityEngine去除字符串转义字符

问题描述 投票:1回答:1

当我打电话:

velocityEngine.evaluate(velocityContext, writer, "", template);

parameter.querystring = {"hi": "\"hello\""}

后评价writer包含{"hi": ""hello""}

题:

  • 为什么速度删除逃逸字符?
  • 如何防止去除逃逸字符?
java escaping velocity
1个回答
2
投票

注:我不知道VelocityEngine,所以借此与一粒盐。

为什么速度删除逃逸字符?

最有可能的VelocityEngine读作个别字符串中parameter.querystring JSON的值。因此字符串"\"hello\""读作文字"hello"。再后来的作家,它只是粘贴此字符串追溯到是。

我个人认为这是在作家的源代码中的缺陷,本应使用沿着Pattern.quote(String)东西线插入之前逃脱的所有字符。

如何防止去除逃逸字符?

另外一个逃脱\可以手动添加为工作四处寻找作家的行为。所以,你的parameter.querystring将成为:

{"hi": "\\\"hello\\\""}

基本上文本\"hello\",其中两个\"字符转义成一个额外的\把它在java字符串。

© www.soinside.com 2019 - 2024. All rights reserved.