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

Nig*_*cks 6 java url url-encoding urldecode

我在一个查询参数中有一个哈希键,它可以与其他特殊字符一起使用+字符。问题是,当此URL得到解码时,URLDecoder将+ char转换为空间。有没有一种方法可以强制URLDecoder不将“ +”转换为空间。

Mik*_*nov 7

根据HTML URL 编码参考

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

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


meh*_*mpt 5

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

yourString.replaceAll("\\+", "%2b")
Run Code Online (Sandbox Code Playgroud)

然后,解码器将显示+它应该在哪里

  • 是否有实用程序方法来处理该问题,而不是在解码之前手动将“+”替换为 UTF-8 格式?虽然它可以工作,但代码看起来不太好。 (2认同)