Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 春季五及五;编码设置_Java_Spring_Utf 8 - Fatal编程技术网

Java 春季五及五;编码设置

Java 春季五及五;编码设置,java,spring,utf-8,Java,Spring,Utf 8,我正在使用Spring5。在编码方面有问题,例如: ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ20。第二,在第三方会议上,会议将在第三方会议上进行 我尝试以这种方式修复编码: @Configuration public class AppInit extends AbstractAnnotationConfigDispatcherServletInitializer { @Override public void onStartup(ServletContext serv

我正在使用Spring5。在编码方面有问题,例如:

ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ20。第二,在第三方会议上,会议将在第三方会议上进行

我尝试以这种方式修复编码:

@Configuration
public class AppInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        addEncodingFilter(servletContext);
        super.onStartup(servletContext);
    }

...

private void addEncodingFilter(ServletContext servletContext) {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);

        EnumSet<DispatcherType> dispatcherTypes
                = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ERROR);

        FilterRegistration.Dynamic characterEncoding
                = servletContext.addFilter("characterEncoding", characterEncodingFilter);
        characterEncoding.addMappingForUrlPatterns(dispatcherTypes, true, "/*");
        characterEncoding.setAsyncSupported(true);
    }
}
@配置
公共类AppInit扩展了AbstractAnnotationConfigDispatcherServletInitializer{
@凌驾
启动时公共void(ServletContext ServletContext)引发ServletException{
addEncodingFilter(servletContext);
super.onStartup(servletContext);
}
...
私有void addEncodingFilter(ServletContext ServletContext){
CharacterEncodingFilter CharacterEncodingFilter=新的CharacterEncodingFilter();
characterEncodingFilter.setEncoding(“UTF-8”);
characterEncodingFilter.setForceEncoding(true);
枚举集dispatcherTypes
=EnumSet.of(DispatcherType.REQUEST、DispatcherType.FORWARD、DispatcherType.ERROR);
FilterRegistration.动态字符编码
=servletContext.addFilter(“characterEncoding”,characterEncodingFilter);
characterEncoding.addMappingForUrlPatterns(dispatcherTypes,true,“/*”;
characterEncoding.setAsyncSupported(true);
}
}

但是没有结果。请告诉我如何为Spring5设置编码的现成解决方案。

尝试使用SpringBeans

@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
    encodingFilter.setEncoding("UTF-8");
    encodingFilter.setForceEncoding(true);
    registrationBean.setFilter(encodingFilter);
    registrationBean.addUrlPatterns("/*");
    return registrationBean;
}
解决办法是:

@Bean
public MessageSource messageSource() {
    ResourceBundleMessageSource source = new ResourceBundleMessageSource();
    source.setBasename("i18n/messages");
    source.setDefaultEncoding("UTF-8");
    return source;
}

我只需要为i18n文件设置默认编码。

谢谢,但这是关于Spring Boot的。你知道如何在没有它的情况下实现它吗?你在项目中使用maven或gradle吗?这可能不是Spring的问题。我使用gradle Projection没有帮助。你能发布你以前的答案吗?我试过这个,但对我不起作用。当我直接提交表格时,我仍然得到豆腐串。