工作需要,转向了java web的开发,框架还是用了spring mvc,由于是初学者,所以会遇到很多需要或许大神们很容易就解决的小问题,为了避免遗忘,会在遇到问题时记录下来,如果理解或者解释不正确,欢迎大家指正。
今天遇到了一个rest接口返回String(中文乱码)的问题,controller代码如下:
@RestController
public class TestController {
@RequestMapping("/test")
public String test(){
return "我是中文 abc 123";
}
}
访问结果:很明显的编码问题,实际上java项目,特别是web项目的编码问题一直是个难题,还好spring提供了解决方案。只需要注入一个指定编码的converter即可。
代码如下:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="defaultCharset" value="#{T(java.nio.charset.Charset).forName('UTF-8')}"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
访问结果: