Loading... 最近有个项目部署到某台服务器上后,发现搜索功能不能用,经多次定位,发现是接口传入中文 模糊匹配出问题,然后各种定位bug 结果发现是中文乱码,然后各种办法处理,又是整配置 ``` server: tomcat: uri-encoding:utf-8 ``` ``` spring: http: encoding: force: true charset: UTF-8 enabled: true ``` 各种编码等等操作 ```java @Configuration public class CustomMVCConfiguration extends WebMvcConfigurerAdapter { @Bean public HttpMessageConverter<String> responseBodyConverter() { StringHttpMessageConverter converter = new StringHttpMessageConverter( Charset.forName("UTF-8")); return converter; } @Override public void configureMessageConverters( List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); converters.add(responseBodyConverter()); } @Override public void configureContentNegotiation( ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); } } ``` 以上处理方式可能对某些项目有效,但是 我试一遍均无效,怎么试都无效 最坑爹的是我远程调试它就正常,我一用作服务启动项目就tm的报错 重点就在这里了,既然`./catalina.sh run` 就正常 说明是tomcat启动的问题 配置下jvm ``` JAVA_OPTS="$JAVA_OPTS -server -Dfile.encoding=UTF-8" ``` 重启下项目 就不乱码了 最后修改:2021 年 07 月 31 日 © 允许规范转载 打赏 赞赏作者 微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
此处评论已关闭