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

问题描述 投票:0回答:1

我想获得搜索结果。如果搜索关键字以百分比符号给出,则不会给出结果(产品名称中包含%)。它仅接受没有百分比符号的关键字。

我们得到结果的搜索关键词: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;
}
java
1个回答
1
投票

您必须对查询字符串中的文本进行URL编码。在Java中实现它的一种方法是使用URLEncoderencode方法之一。

例如:

String search = "Blue Band Koken & Opkloppen 31% Lactosevrij 1L";
String query = "?q=" + URLEncoder.encode(search, "UTF-8");
© www.soinside.com 2019 - 2024. All rights reserved.