我正在尝试获取搜索结果。如果搜索关键字带有百分比符号,则不会给出结果(产品名称中包含%)。它仅接受不带百分比符号的关键字。
我们获得结果的搜索关键字:
Blue Band Koken & Opkloppen 31 Lactosevrij 1L
对应于
网址中的?q=Blue+Band+Koken+%26+Opkloppen+31+Lactosevrij+1L&xyz
格式
我没有得到结果的搜索关键词:
Blue Band Koken & Opkloppen 31% Lactosevrij 1L
对应于
网址中的?q=Blue+Band+Koken+%26+Opkloppen+31%25+Lactosevrij+1L&xyz
格式
产品实际名称:Blue Band Koken & Opkloppen 31% Lactosevrij 1L
解码器无法解码%。因此,出现以下代码错误:
Java代码:
public static String getEncodedParam(String string) {
if (StringUtils.isBlank(string)) {
return Constants.Strings.EMPTY;
}
String encodedString = string;
try {
if (string.equals(URLDecoder.decode(string, Constants.Encoding.UTF8))) {
encodedString = URLEncoder.encode(string, Constants.Encoding.UTF8);
}
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("Argument is not in a correct state.");
}
return encodedString;
}
答案 0 :(得分:1)
您必须对查询字符串中的文本进行URL编码。用Java做到这一点的一种方法是使用URLEncoder
的encode
方法之一。
例如:
String search = "Blue Band Koken & Opkloppen 31% Lactosevrij 1L";
String query = "?q=" + URLEncoder.encode(search, "UTF-8");