URLDecoder正在将“+”转换为空间

2022-09-04 19:33:27

我的一个查询参数中有一个哈希键,它可以与其他特殊字符一起具有+ char。问题是当这个URL被解码时,URLDecoder将+char转换为空间。有没有办法强制URLDecoder不将“+”转换为空间。


答案 1

在解码之前对字符串执行此操作:

String plusEncoded = yourString.replaceAll("\\+", "%2b")

然后,解码器将显示它应该在的位置+


答案 2

根据 HTML URL 编码参考

网址不能包含空格。URL 编码通常将空格替换为加号 (+) 或 %20。

并且符号本身必须使用 编码。因此,如果要将哈希作为 URL 中的 GET 参数传递,则应在哈希中替换加号。不要替换整个 URL 中的每个 URL,因为您可能会破坏其他假定包含空格的字符串参数。+%2B%2B+