2012-07-23 122 views
1

有一个“#”字符在我的查询键存在如下图所示:http://10.251.25.12:8080/commentindex/comment/select?q=17\#30\#36\#94\#35&rows=200&wt=json有特殊的字符Solr的查询

17\#30\#36\#94\#35 

所以查询网址会产生。你可以看到,由于'#'发送到服务器之前,URL将被截断,并且我将得到错误结果,错误行数,错误文档类型(不是我设置的JSON)。

对于上面的实例,我编码的网址为http://10.251.25.12:8080/commentindex/comment/select?q=17%5c%2330%5c%2336%5c%2394%5c%2335&rows=200&wt=json。一切都如我所料。但是,我遇到了另外一个错误,如果查询键看起来像:

http://10.251.25.12:8080/commentindex/comment/select?q=%e2%86%90%5c%7e%5c%5c(%e2%89%a7%e2%96%bd%e2%89%a6%5c)%5c%2f%5c%7e%ef%bc%81%ef%bc%81%7c&rows=200&wt=json 

你觉得括号:

←\~\\(≧▽≦\)\/\~!!| 

网址会生成?这是solr查询中的特殊字符! 400个不好的请求我会从网址中获得。

我注意到所有的查询键都被'\'转义了,所以如果我不应该编码整个url并且只编码'#'char?我还有其他特殊字符吗?

回答