2012-03-13 66 views
3

我在寫一個lucene服務器。我想收到後查詢,如:
http://www.site.com/search?+title:google +類型:網站Java:使用URLDecoder,但保留加號(+)

但爭論後「+標題:谷歌+類型:網站「編碼是這樣的:」+標題:谷歌%20 +類型:網站「 所以我使用URLDecoder.decode(參數,」UTF-8「)獲取原始輸入,但我得到了錯誤的結果:

「title:goole type:website」,因爲URLDecoder會將加號「+」轉換爲空格字符「」。我能做什麼來獲得解碼參數而不轉換加號?

回答

0

實際上所有的空格都會被%20替換,所以你可以在獲得URL字符串後將所有的%20替換爲空格。

+0

但我需要處理中文,漢字編碼以及 – remy 2012-03-13 04:53:06

+0

但它的空間的問題。不涉及任何特定的字符,如果中國人提供示例 – 2012-03-13 04:59:09

+0

我只是通過重寫URLDecode.decode()函數來解決此問題。不管怎樣,謝謝你 – remy 2012-03-13 06:00:08

4

你可以試試這個:

「+標題:谷歌20%+類型:網站」 .replaceAll( 「\\ +」, 「%2B」)

它將取代所有加號和之後,你使用的解碼器,這將轉換回加號