gpt4 book ai didi

java - VelocityEngine从字符串中删除转义字符

转载 作者:行者123 更新时间:2023-11-30 01:55:49 34 4
gpt4 key购买 nike

当我打电话时:

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

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

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

问题:

  • 为什么 Velocity 会删除转义字符?
  • 如何防止删除转义字符?

最佳答案

注意:我不了解 VelocityEngine,所以对此持保留态度。

Why does Velocity remove escaping characters?

很可能 VelocityEngine 将 parameter.querystring JSON 中的值读取为单独的字符串。因此,字符串 "\"hello\"" 被读取为文本 "hello"。然后,稍后在编写器中,它只是按原样粘贴该字符串。

我个人认为这是作者源代码中的一个缺陷,它应该使用类似 Pattern.quote(String) 的内容。在插入之前转义所有字符。

How can I prevent removal of escaping characters?

可以手动添加额外的转义 \ 作为编写器行为的解决方法。所以你的 parameter.querystring 将变成:

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

基本上是文本 \"hello\",其中 \" 字符均使用附加 \< 进行转义 将其放入 java 字符串中。

关于java - VelocityEngine从字符串中删除转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553556/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com