使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法。
我使用的是sping-web-3.2.2,jar
方法一:
在@RequestMapping里面加入produces = "text/html;charset=UTF-8"
@RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
public @ResponseBody String configrole() {
......
}
方法二:
因为在StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1
所以拿到源代码,修改成UTF-8并打包到spring-web-3.2.2.jar
public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String>
{
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
..........
}
方法三:
修改org.springframework.http.MediaType它的构造方法的参数,并在applicationContext-mvc.xml 加入配置
public MediaType(String type, String subtype, Charset charset) {
super(type, subtype, charset);
}
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="text" />
<constructor-arg value="plain" />
<constructor-arg value="UTF-8" />
</bean>
</list>
</property>
</bean>
方法四:
直接将org.springframework.http.converter.StringHttpMessageConverter 里面的属性defaultCharset设置成utf-8
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="defaultCharset" value="UTF-8"/>
</bean>
上面的几种方法经过测试都是可行的,网上还有其他的办法,后面找到一并加进来。
分享到:
相关推荐
本文给大家介绍四种方法解决springmvc 发送ajax出现中文乱码问题,非常具有参考借鉴价值,感兴趣的朋友一起学习吧
springMVC框架遇到中文乱码的解决思路汇总,包括从配置到注解的详细描述,帮助开发人员解决spirngMVC中文乱码问题
springmvc接收ajax请求注意事项
主要介绍了springMVC解决ajax请求乱码的三种方法的相关资料,在springmvc的项目中,使用返回页面的请求方式,数据都能正常显示,但是对于ajax的请求,始终显示乱码,这里提供解决办法,需要的朋友可以参考下
springMVC支持ajax的jar包,包括 jackson-annotations-2.1.5.jar jackson-core-2.1.4.jar jackson-databind-2.4.3.jar
springMVC jQuery ajax交互的简单的应用,一个可以参照的文件
SpringMVC利用Ajax,JQuery交互Json
使用springMVC+ajax+json的一个小demo,希望对读者有用
springmvc+ajax上传例子
http://blog.csdn.net/madcode2222222222222/article/details/78326347
SpringMVC+Ajax异步文件上传+短视频背景+a标签绑定文件域
Springmvc与Ajax交互实例
配置opencv3.4.1时,包含库的名称又不是opencv_word的形式了,这里列了一下需要包含的lib名称。同时包含了congtrib3.4.1的压缩包
后台界面实时获取用户输入内容,springMVC+Ajax实现(源码)
NULL 博文链接:https://cdxs2.iteye.com/blog/1950519
SpringMVC解决GET请求时中文乱码的问题.rar
NULL 博文链接:https://stillcoolme.iteye.com/blog/2313624
jackson-annotations-2.4.6.jar jackson-core-2.5.0.jar jackson-databind-2.4.6.1.jar
本例子提供了2中 springMVC 上传的例子,通过 ajax 提交的方式,通过 Form 提交的方式,同时获取上传后文件名称,支持多个文件上传。