2012-07-23 84 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?我還有其他特殊字符嗎?

回答