`

springmvc ajax放回json中文乱码???

阅读更多

场景:

项目配置了spring encoding filter,前后台编码统一为UTF-8,,Tomcat也改了字符集编码, response 设置字符集无法使用(由于方法返回的是String,并不是response 的write方式

 

注:

以上转自网络,谢谢雷锋。

本人使用的是第一种方法。(若接口返回的非json格式的String则不能用,会导致前台无法解析)

 

使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法。 

  我使用的是sping-web-3.2.2,jar 

  方法一: 

  在@RequestMapping里面加入produces = "text/html;charset=UTF-8" 

Java代码  收藏代码
  1. @RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")  
  2. public @ResponseBody String configrole() {  
  3.   ......  
  4. }  



方法二: 

因为在StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1 

所以拿到源代码,修改成UTF-8并打包到spring-web-3.2.2.jar 

Java代码  收藏代码
  1. public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String>  
  2. {  
  3.   public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");  
  4.   ..........  
  5. }  
  6.    



方法三: 

修改org.springframework.http.MediaType它的构造方法的参数,并在applicationContext-mvc.xml 加入配置 

Java代码  收藏代码
  1. public MediaType(String type, String subtype, Charset charset) {  
  2.     super(type, subtype, charset);  
  3. }  



Xml代码  收藏代码
  1. <bean id="stringHttpMessageConverter"  
  2.     class="org.springframework.http.converter.StringHttpMessageConverter">  
  3.     <property name="supportedMediaTypes">  
  4.         <list>  
  5.             <bean class="org.springframework.http.MediaType">  
  6.                 <constructor-arg value="text" />  
  7.                 <constructor-arg value="plain" />  
  8.                 <constructor-arg value="UTF-8" />  
  9.             </bean>  
  10.         </list>  
  11.     </property>  
  12. </bean>  



方法四: 

  直接将org.springframework.http.converter.StringHttpMessageConverter 里面的属性defaultCharset设置成utf-8

Xml代码  收藏代码
  1. <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">  
  2.      <property name="defaultCharset" value="UTF-8"/>  
  3. </bean>  




分享到:
评论

相关推荐

    解决SpringMvc后台接收json数据中文乱码问题的几种方法

    当前端通过Ajax使用JSON格式向SpringMvc后台发送数据时,可能出现中文乱码。这通常是因为服务器默认的字符编码不支持UTF-8导致的。以下是两种解决方法: - 方式一:在Controller方法中手动转码 在接收到请求参数...

    解决Ajax加载JSon数据中文乱码问题

    使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码  async: { enable: true, url: basePath + '/...

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

    在开发Web应用时,Spring MVC和Ajax的交互过程中,经常遇到中文乱码的问题。这个问题主要出现在数据从服务器传输到客户端的过程中,由于编码设置不正确,导致中文字符无法正常显示。以下将详细介绍四种解决Spring ...

    用ajax传递json到前台中文出现问号乱码问题的解决办法

    我使用的Springmvc,在controller层传输一个json到前台,后台显示没问题,中文正常显示而到了前台 中文就变成了问号。 后来发现,因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现...

    SpringMVC+Jquery实现Ajax功能

    SpringMVC会自动将其转换成JSON格式,供jQuery的Ajax请求接收。 3. **处理异常**:可以使用`@ExceptionHandler`注解来捕获并处理异常,返回相应的错误信息。 通过上述步骤,SpringMVC和jQuery可以协同工作,实现...

    springmvc-ajax

    项目介绍 这是一个 springmvc + mybatis ...也配置了转成json解决乱码的问题 &lt;!-- 1、支持HandlerMapper和HandlerAdapter --&gt; &lt;!-- 转成json 为UTF-8 --&gt; &lt;mvc:message-converters register-default

    基于AJAX结合SpringMVC的信息访问服务模式研究

    【基于AJAX结合SpringMVC的信息访问服务模式研究】 AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。它利用JavaScript、XHTML、CSS、DOM、XML、XSLT以及...

    Spring+SpringMVC+MyBatis所需jar包(全部)

    - 解决Ajax中JSON中文乱码问题,通常需要设置Tomcat的字符编码,以及在Servlet容器中配置过滤器,如`CharacterEncodingFilter`,确保请求和响应的编码一致。 5. **jar包说明**: 压缩包中的jar包涵盖了Spring、...

    java web SpringMVC后端传json数据到前端页面实例代码

    8. 解决中文乱码问题: 在使用SpringMVC进行数据交互时,很容易遇到字符编码问题,尤其是中文字符。SpringMVC提供了多种方式来解决编码问题,如在响应中设置字符编码或通过过滤器指定字符编码。 综上所述,本实例...

    Springmvc完成ajax功能实例详解

    在本文中,我们将深入探讨如何使用Spring MVC框架来实现AJAX功能。AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。Spring MVC提供了一种简单的方式...

    SpringMVC4.0.3+Mybatis3.2.5+EasyUI1.4.1 Demo

    该项目使用springmvc4.0.3 + Mybatis3.2.5 前端使用easyUI1.4.1 ...1.ajax请求,返回JSON数据,有中文乱码解决方案 2.登陆拦截,未登陆过的用户将跳转到登陆页面 3.邮件发送 4.企业级前端界面 5.前端数据分页、查询

    Spring MVC面试宝典1.pdf

    ##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **GET请求**:同样可以通过配置过滤器解决,也可以通过修改Tomcat...

    SpringMVC面试题.pdf

    - 在Ajax请求中,设置请求类型为GET或POST,指定请求URL,然后在成功回调中处理响应的JSON数据。 7. **处理乱码问题**: - 对于请求参数的乱码,可以通过在DispatcherServlet配置中设置`characterEncodingFilter`...

    Spring MVC面试题(2022最新版)

    如何解决POST请求中文乱码问题,GET的又如何处理呢? - 对于POST请求,可以在web.xml中配置字符编码过滤器,确保所有请求都使用统一的字符编码: ```xml &lt;filter-name&gt;characterEncodingFilter &lt;filter-class&gt;...

    SpringMVC面试题(2024最新版).docx

    **处理中文乱码**: POST请求通过设置Filter解决,GET请求可以通过设置`CharacterEncodingFilter`。 **异常处理**: 可以自定义异常处理器,比如使用@ControllerAdvice和@ExceptionHandler注解。 **获取Request、...

    SpringMVC结合ajaxfileupload.js实现文件无刷新上传

    客户端使用ajaxfileupload.js通过Ajax发送文件,服务器端的SpringMVC Controller接收并处理文件,然后返回结果给客户端。这个过程无需刷新整个页面,提升了用户的交互体验。需要注意的是,实际应用中还需要处理文件...

    SSM整合_年轻人的第一个增删改查_基础环境搭建.doc

    确保它们都已正确安装,并且编辑器设置为UTF-8编码,Tomcat服务器也需配置为UTF-8编码处理,以避免中文乱码问题。 接下来,创建一个Maven工程,这是SSM项目的起点。Maven工程的目录结构应遵循Maven的约定,包括`src...

Global site tag (gtag.js) - Google Analytics