我有一些html文本输入,可以将数据发送到后端spring系统。当我只把一个(%)作为一个字符时,我得到了以下异常:
java.lang.IllegalArgumentException: Incomplete escaping sequence in input
14:17:34,269 INFO [stdout] (default task-4) at org.unbescape.uri.UriEscapeUtil.unescape(UriEscapeUtil.java:617)
14:17:34,269 INFO [stdout] (default task-4) at org.unbescape.uri.UriEscape.unescapeUriQueryParam(UriEscape.java:1702)
14:17:34,269 INFO [stdout] (default task-4) at org.unbescape.uri.UriEscape.unescapeUriQueryParam(UriEscape.java:1668)
14:17:34,269 INFO [stdout] (default task-4) at org.thymeleaf.spring5.util.SpringRequestUtils.checkViewNameNotInRequest(SpringRequestUtils.java:55)
14:17:34,269 INFO [stdout] (default task-4) at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:275)
14:17:34,269 INFO [stdout] (default task-4) at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190)我正在编码之前的数据被发送到后端使用JS的encodeURIComponent方法,在链接中的%变成%25,这是正确的编码值,但为什么它抛出一个异常,这是什么可能的解决方案我没有想法tbh。
提前感谢您的回复:)
发布于 2021-11-10 14:22:32
除了“当我只将一个(%)作为字符”和“我正在对数据进行编码”之外,您没有透露更多信息。
我的水晶灯泡告诉我有一些http(s)请求,其中一个请求参数只包含一个编码的百分比符号。当此请求被服务器解析时,%25被解码回%。到目前为止,没有问题。
但是,有没有可能应用程序现在尝试自己解码数据,而只看到%符号?然后,它将返回与您看到的完全相同的错误。
在这种情况下,您可能需要双重编码:% -> %25 -> %2525
https://stackoverflow.com/questions/69914526
复制相似问题