get请求到javaController乱码

postman显示编码格式是utf-8的Content-Type →application/json;charset=UTF-8

图片描述

如题,我再pom.xml里配置了编码格式。但是怎么到了controller还是乱码的

回答:

你的信息给的不够多,根据你给的信息没有办法判断你项目是使用哪种架构方式的,不管哪种方式,最终你都要解决编码格式化问题。
你可以尝试一下几种方案,如果你是偏好配置编程,那么你应该在的web.xml的过滤器顶部添加类似如下代码

<filter> 

<!-- if you want encoding all request, this should be at the top of all your filters -->

<filter-name>encodingFilter</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>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

还有一种可能是maven编码格式导致,但我感觉可能性不大,大概需要如下配置:

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

...

</properties>

如果你是偏于注解编程的方式,那么你可以装在一个bean,大概代码如下:

@Bean public StringHttpMessageConverter stringHttpMessageConverter() {

return new StringHttpMessageConverter(StandardCharsets.UTF_8); //Java 7 imported, 我比较偏好这种

//return new StringHttpMessageConverter(Charset.forName("UTF-8"); // 常规手段

}

如果你使用的是embedded tomcat,那么你或许需要装载一个bean,操作如下:

@Bean public EmbeddedServletContainerFactory servletContainer() {

TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();

tomcat.setUriEncoding("UTF-8");

...

return tomcat;

}

如果你使用的是外部tomcat,那么我建议你在server.xml http或https模块(视你的请求协议而定)添加coding过滤,配置大概如下:

<connector port="8080" uRIEncoding="utf-8" ... />

正如你在maven中配置的一样,也是方式之一。代码可能存在拼写或记忆错乱问题,请各路大牛拍砖,指正

回答:

你可以看下你项目的编码集时什么,还有指定maven 编译时的编码,maven默认是gbk编译

以上是 get请求到javaController乱码 的全部内容, 来源链接: utcz.com/p/176535.html

回到顶部