我想获得搜索结果。如果搜索关键字以百分比符号给出,则不会给出结果(产品名称中包含%)。它仅接受没有百分比符号的关键字。
我们得到结果的搜索关键词:Blue Band Koken & Opkloppen 31 Lactosevrij 1L
对应于url中的?q=Blue+Band+Koken+%26+Opkloppen+31+Lactosevrij+1L&xyz
格式
搜索我未获得结果的关键字:Blue Band Koken & Opkloppen 31% Lactosevrij 1L
对应于url中的?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;
}
您必须对查询字符串中的文本进行URL编码。在Java中实现它的一种方法是使用URLEncoder
的encode
方法之一。
例如:
String search = "Blue Band Koken & Opkloppen 31% Lactosevrij 1L";
String query = "?q=" + URLEncoder.encode(search, "UTF-8");