2012-10-17 27 views
0

我正在寻找在URL中编码过滤器参数。我想要一个可读的URL,所以我想用下划线替换空格。Java URLEncoding /解码带空格的URL空格

例如阿斯顿马丁编码为aston_martin而不是aston $ 0020马丁。然后我需要能够将URL解码回aston martin。

我唯一关心的是自然包含下划线的搜索参数。我不确定你会在这个特定的用例中做什么。

我是一个tapestry5用户,所以我可以选择覆盖URLEcoder,也可以使用java URLEncoder。我只是没有想出如何让它按我喜欢的方式进行编码。

任何帮助,将不胜感激。

+3

为什么你不想使用“+”的标准编码空间? –

+0

@TedHopp我想你的正确。我不知道为什么我想我需要用空格来做。我想我只是在想SEO。 –

回答

2

您正在将URL编码与java.net.URLEncoder混淆。不奇怪,不是你的错。尽管它的名字,后面的过程是用于URL 参数名称和值,并在POST数据相同。只有前者将空间变成%20。后者将它变成'+',这是(a)正确的事情要做你的过滤器参数,(b)可逆的,和(c)不像%20那样冒犯。不知道你从哪里得到了$ 0020。

+0

我不知道为什么我的问题被拒绝了,因为这是一个真正的问题:(无论如何,我当前的URLEncoder,我相信是在URLEncoder中构建的Tapestry,正在用$ 0020替换空格,但我认为它没有那么干净/ _或+。我会研究你的建议,并试图找出如何使用+号。 –

+0

@George java.net.URLEncoder为你做了这件事,我不知道这个Tapestries的事情是怎么想的。在URL中指定%20并在参数中指定+。 – EJP