Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Requestparam获取的值不正确_Java_Spring_Utf 8 - Fatal编程技术网

Java Requestparam获取的值不正确

Java Requestparam获取的值不正确,java,spring,utf-8,Java,Spring,Utf 8,查询参数URL:AspectValues?aspectName=US+Shoe+Size+(女性%27s) 当我使用: @RequestMapping(value = "AspectValues", method = RequestMethod.GET) @ResponseBody public Map<String, String> getAspectValues(@RequestParam String aspectName) @RequestMapping(value=“As

查询参数URL:AspectValues?aspectName=US+Shoe+Size+(女性%27s)

当我使用:

@RequestMapping(value = "AspectValues", method = RequestMethod.GET)
@ResponseBody
public Map<String, String> getAspectValues(@RequestParam String aspectName)
@RequestMapping(value=“AspectValues”,method=RequestMethod.GET)
@应答器
公共映射getAspectValues(@RequestParam字符串aspectName)
aspectName
将被填充为
美国鞋码(女式)
而不是
美国鞋码(女式)


如果你们中的任何人能告诉我什么时候发生百分比编码,它会给出任何值作为空格,以及这种行为的原因,这将是非常有帮助的。

这个问题不是针对Spring的。更确切地说,它是关于Java如何处理uri的。你可以调查一下以处理这个问题


这个问题在这个添加字符编码过滤器中得到了很好的回答

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我已经在web.xml中添加了这个,但它不起作用。我已经用postman测试过了,它不仅仅适用于%27,当我们将%27更改为%28或任何其他已知的utf-8值时,它工作得非常好。你对此有什么想法吗?是什么让你认为
CharacterEncodingFilter
只会影响请求或响应的主体?@Sotirios那么你认为问题出在哪里?@Rishi我不知道。我不能复制这个。您可能想在您的问题中添加一个。@Sotirios我想添加一个,但在此之前,只需使用任何url,例如,它有一个引号,以查看传递的参数是“Size Women’s”还是“Size Women’s”。这将帮助您重现错误,并在以后的某个时候添加一个具体的示例。
@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setEncoding("UTF-8");
    registrationBean.setFilter(characterEncodingFilter);
    return registrationBean;
}