如何允许字符串格式的百分比符号获取搜索结果?

时间:2019-03-05 13:50:40

标签: java

我正在尝试获取搜索结果。如果搜索关键字带有百分比符号,则不会给出结果(产品名称中包含%)。它仅接受不带百分比符号的关键字。

我们获得结果的搜索关键字: 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;
}

1 个答案:

答案 0 :(得分:1)

您必须对查询字符串中的文本进行URL编码。用Java做到这一点的一种方法是使用URLEncoderencode方法之一。

例如:

String search = "Blue Band Koken & Opkloppen 31% Lactosevrij 1L";
String query = "?q=" + URLEncoder.encode(search, "UTF-8");