先上代码
@RequestMapping("test.ajax")
@ResponseBody
public String test(HttpServletResponse response) {
return "中文";
}
用过spring mvc的都知道上面这段代码是干嘛的,我的问题就是,请求test.ajax时,在浏览器上显示的是两个问号。我的配置应该是正确的,我统一使用UTF8,其他完整跑完mvc流程的映射方法都能正确显示中文。
个人认为是servlet在返回“中文”这两个字时,用了latin1来编码,但是Latin1的字符集中没有”中文“这两个字,就用了?来代替。
我尝试设置
response.setCharacterEncoding("utf8");
response.setContentType("text/plain; charset=utf-8");
也没有用
------解决方案--------------------
要配置一个bean的
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
<property name="messageConverters">
<list>
<bean class = "org.springframework.http.converter.StringHttpMessageConverter">
<property name = "supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
------解决方案--------------------
@RequestMapping(value = "test.ajax" , ,produces="text/plain;charset=UTF-8")
@ResponseBody
public String test(HttpServletResponse response) {
return "中文";
}
------解决方案--------------------
@RequestMapping(value = "test.ajax" , ,produces="text/plain;charset=UTF-8") =>
@RequestMapping(value = "test.ajax" , produces="text/plain;charset=UTF-8")
------解决方案--------------------
@RequestMapping(value = "test.ajax", produces = "text/plain;charset=UTF-8")