Java Spring字符编码

Java Spring字符编码,java,spring,spring-mvc,filter,controller,Java,Spring,Spring Mvc,Filter,Controller,我正在尝试向控制器发送西里尔字母符号。 当我通过发送到控制器时,当我通过AJAX传递参数并获取方法时,我收到ISO-8859-1 在我的jsp顶部: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 我试过配置消息转换器 @Configuration @EnableWebMvc public class WebConfig extends WebMvcC

我正在尝试向控制器发送西里尔字母符号。 当我通过发送到控制器时,当我通过AJAX传递参数并获取方法时,我收到ISO-8859-1

在我的jsp顶部:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
我试过配置消息转换器

 @Configuration
 @EnableWebMvc
 public class WebConfig extends WebMvcConfigurerAdapter {

//Other configuration

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
    stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "plain", Charset.forName("UTF-8"))));
    converters.add(stringConverter);

}
}

我修好了。我只是安装了其他tomcat版本。Tomcat7出现问题,Tomcat8一切正常

PS:server.xml到Tomcat/conf的配置在两个版本中都有


PSS:我还将HttpMessageConverters配置删除到WebConfig中。这不会影响编码。

我修复了它。我只是安装了其他tomcat版本。Tomcat7出现问题,Tomcat8一切正常

PS:server.xml到Tomcat/conf的配置在两个版本中都有


PSS:我还将HttpMessageConverters配置删除到WebConfig中。这不会影响编码。

Spring已经有了一个过滤器,
CharacterEncodingFilter
只需正确配置它即可。我建议使用
AbstractAnnotationConfigDispatcherServletializer
而不是编写自己的。然而,我怀疑错误在于如何发送ajax请求。尝试使用AbstractAnnotationConfigDispatchers ServletInitializer,结果相同。请添加代码,而不是尝试对其进行描述。我没有说使用AbstractAnnotationConfigDispatcherServletInitializer,但它会清理您的代码。@M.Deinum在上面更新了
charset=utf-8
,它甚至不像一个有效的内容类型。改用
编码
<代码>编码:“utf-8”而不是
contentType:“charset=utf-8”
。Spring已经有了一个过滤器,
CharacterEncodingFilter
只需正确配置它即可。我建议使用
AbstractAnnotationConfigDispatcherServletializer
而不是编写自己的。然而,我怀疑错误在于如何发送ajax请求。尝试使用AbstractAnnotationConfigDispatchers ServletInitializer,结果相同。请添加代码,而不是尝试对其进行描述。我没有说使用AbstractAnnotationConfigDispatcherServletInitializer,但它会清理您的代码。@M.Deinum在上面更新了
charset=utf-8
,它甚至不像一个有效的内容类型。改用
编码
<代码>编码:“utf-8”而不是
contentType:“charset=utf-8”
 @Configuration
 @EnableWebMvc
 public class WebConfig extends WebMvcConfigurerAdapter {

//Other configuration

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
    stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "plain", Charset.forName("UTF-8"))));
    converters.add(stringConverter);

}
}
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  @Override
protected String[] getServletMappings() {
    return new String[]{"/"};
}

@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class<?>[]{ApplicationConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return new Class<?>[]{WebConfig.class};
}

@Override
protected Filter[] getServletFilters() {

    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setEncoding("UTF-8");
    characterEncodingFilter.setForceEncoding(true);
    return new Filter[] { characterEncodingFilter};
}
}
    $(window).load(function(){

$("#firstUser").keyup(function(){
var value = $(this).val();
console.log(value);

 var searchRequest = $.ajax({
                type: "GET",
                url: "calc/name",
                encoding: "UTF-8",
                data: {
                    'userName' : value
                },
                dataType: "text",
                success: function(msg){

                }
            });

            })
});