springmvc 发送ajax出现中文乱码的解决方法汇总_AJAX相关

使用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);
} 

Xml代码 

<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> 

方法4

org.springframework.http.converter.StringHttpMessageConverter类是处理请求或相应字符串的类,并且默认字符集为ISO-8859-1,所以在当返回json中有中文时会出现乱码。

StringHttpMessageConverter的父类里有个List<MediaType> supportedMediaTypes属性,用来存放StringHttpMessageConverter支持需特殊处理的MediaType类型,如果需处理的MediaType类型不在supportedMediaTypes列表中,则采用默认字符集。

解决办法,只需在配置文件中加入如下代码:

<mvc:annotation-driven>
<mvc:message-converters>
 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
 <value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

如果需要处理其他 MediaType 类型,可在list标签中加入其他value标签

关于springmvc 发送ajax出现中文乱码问题小编就给大家介绍到这里,希望对大家有所帮助!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索spring_mvc_ajax乱码
spring_ajax乱码
spring mvc ajax 乱码、spring ajax 乱码、ajax 中文乱码 spring、spring mvc ajax、spring mvc 中文乱码,以便于您获取更多的相关知识。

时间: 2024-10-06 11:51:50

springmvc 发送ajax出现中文乱码的解决方法汇总_AJAX相关的相关文章

Ajax缓存问题的解决方法汇总_AJAX相关

1.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0"). 2.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache"). 3.在URL后面加上一个随机数: "fresh=" + Math.random();. 4.在URL后面加上时间搓:"

jQuery ajax方法传递中文时出现中文乱码的解决方法_jquery

本文实例讲述了jQuery ajax方法传递中文时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 使用jQuery的ajax方法,在传递中文时出现中文乱码,按照以前的方法,修改了jquery文件中的ajaxSetting也不好使 复制代码 代码如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse

使用Wordpress插件时出现中文乱码的解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 用wordpress建网站的好处就在于,可以使用N多主题和N多的插件,由于wordpress在国外的使用时期较长,很多插件都是国外的用户开发的.对于中文的支持不是很好.经常使用WP一定会遇到插件编码问题,今天影子给大家讲一下关于使用wordpress插件时出现中文乱码的解决方法. 一.起因: 今天就遇到一个插件,输入中文后,保存,查看,显示输

php生成二维码时出现中文乱码的解决方法_php技巧

本文实例讲述了php生成二维码时出现中文乱码的解决方法.分享给大家供大家参考.具体分析如下: 最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个类型没有内容,随即判断没内容就加上一个固定的字符串,这样乱码的问题得以解决. php生成二维码的几种方式 1.google开放api,代码如下: 复制代码 代码如下: $urlToEncode="http://www.

Java读取properties配置文件时,出现中文乱码的解决方法_java

如下所示: public static String getConfig(String key) { Properties pros = new Properties(); String value = ""; try { pros.load(new InputStreamReader(Object.class.getResourceAsStream("/properties.properties"), "UTF-8")); value = pr

iOS读取txt文件出现中文乱码的解决方法_IOS

一.情景描述:  后台给一个txt文件,编码是utf-8,在Mac电脑Xcode开发环境下读取txt文件内容,汉字会出现乱码,英文没有乱码这种情况.  二.尝试解决方法: 修改编码格式,尝试了NSUTF16StringEncoding,NSUTF8StringEncoding,NSASCIIStringEncoding编码等,出现的问题有时是中文乱码,有时是utf-8不能打开文件问题,最终问题都没能解决.  三.猜测原因: txt文件是从window电脑上创建,有可能和环境有关,第二,编码问题.

MySql中表单输入数据出现中文乱码的解决方法_Mysql

 MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式. MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2.建表的时候 CREATE TABLE content ( text VARCHAR(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

java表单提交中文乱码的解决方法_java

本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&

Servlet的中文乱码常用解决方法

Servlet的中文乱码常用解决方法 在servlet页面就出错了,打印出就是乱码,why? public class toDetail extends HttpServlet {  public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {   response.setContentType("text/html&quo