2012-03-13 178 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”)

它将取代所有加号和之后,你使用的解码器,这将转换回加号