【发布时间】:2011-02-22 05:40:02
【问题描述】:
我使用来自Apache Commons Codec 的URLCodec 来编码URL,但它将空间编码为+ 而不是%20
为什么?解决办法是什么?
【问题讨论】:
标签: java apache-commons url-encoding apache-commons-codec
我使用来自Apache Commons Codec 的URLCodec 来编码URL,但它将空间编码为+ 而不是%20
为什么?解决办法是什么?
【问题讨论】:
标签: java apache-commons url-encoding apache-commons-codec
当然,如果需要,你可以随时使用url.replace("+", "%20");(编码后)
【讨论】:
String#replace 函数 (w3schools.com/jsref/jsref_replace.asp) 的描述,你不会知道你可以为第二个参数提供一个函数,这确实是 有用.
url.replace(" ", "%20");"... 那是个坏主意(你不想在编码之前这样做,你会以编码的% 结尾;并且在 编码之后没有空格)。你想要.encode(str).replace("+", "%20");。
因为+ 是一种同样有效的空间编码方式。你想“解决”什么?
【讨论】:
URLCodec 对适合提交表单的内容进行编码,这与对 URL 进行百分比编码不同。 this question有更多解释
请参阅this question,了解应如何对 URL 进行编码。
【讨论】: