2013-09-22 64 views
0

一個菜鳥的問題:HTML行動改變空間爲加分

我有一個簡單的提交表單,問題是,如果有該值被改爲加上輸入(+)給出的任何空間。

這是我的形式:

<form name="input" action="search" method="get"> 
Web Address: <input type="text" name="address"><br> 
Search Query: <input type="text" name="query"><br> 
<input type="submit" value="Search"> 
</form> 

我想舉一個例子:

如果用戶填寫「這裏查詢」,「地址在這裏」的第一箱和第二箱。點擊後得到的地址是"search?address=address+here&query=query+here"而不是"search?address=address%20here&query=query%20here"。我怎樣才能用%20而不是+符號來改變這些「命名空間」?

我不想要加號而不是%20是因爲我正在用Java語言編寫搜索引擎並使用sun的httpserver庫作爲Web服務器。該庫使用.getRequestURI().getQuery()方法處理結果的「查詢」部分(在?符號之後),但此方法將%20作爲空間處理,並將加號視爲加號。如果這不是「可修復的」,那麼我也可以接受涉及javascript的解決方案。

+4

它的urlencoded和應該沒關係...瀏覽器將再次解碼值。 – knittl

+0

它不是urlencoded,它是形式urlencoded,這是微妙的不同('+'而不是'%20'是我所知道的唯一區別)。 **瀏覽器**不會解碼該值。任何形式的處理庫應該儘管。 – Quentin

+0

我在Java中使用這些信息,不幸的是它在我的情況下很重要,因爲這不是瀏覽器問題。 –

回答

-1

將空格符號編碼爲正數是由於表單正在使用的standard application/x-www-form-urlencoded encoding,所以我不認爲這是可能的。

+1

這是真的,但它不回答這個問題,應該是一個評論。 – Quentin

+0

@Quentin:哎呀......我想我的回答很明顯。不過,我已經編輯了它。謝謝。 –

+0

這是可能的(你只需在JS中重建整個表單提交邏輯,然後才能修改它)。 – Quentin