2012-10-17 28 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