最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Ajax加载JSon数据时数据内中文乱码怎么办

来源:动视网 责编:小采 时间:2020-11-27 19:57:30
文档

Ajax加载JSon数据时数据内中文乱码怎么办

Ajax加载JSon数据时数据内中文乱码怎么办:这次给大家带来Ajax加载JSon数据时数据内中文乱码怎么办,解决Ajax加载JSon数据时数据内中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。一、问题描述使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经
推荐度:
导读Ajax加载JSon数据时数据内中文乱码怎么办:这次给大家带来Ajax加载JSon数据时数据内中文乱码怎么办,解决Ajax加载JSon数据时数据内中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。一、问题描述使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经


这次给大家带来Ajax加载JSon数据时数据内中文乱码怎么办,解决Ajax加载JSon数据时数据内中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。

一、问题描述

使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢?

此处为的异步请求的配置:

Java代码

async: { 
 enable: true, 
 url: basePath + '/sysMenu/listSysMenu', 
 autoParam: ["id=parentId"] 
}

SpringMvc中文字符处理:

Java代码

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

返回的结果有中文乱码:

Js代码

[ 
 { 
 "menuId": "880095098165986816", 
 "menuName": "????", 
 "parentId": "880095098165986815", 
 "menuUrl": "http://localhost:8080/imovie-manage/sysMenu/listSysMenuUI", 
 "menuIcon": "", 
 "menuSort": 1, 
 "isEnable": 1, 
 "parentMenuName": "??", 
 "id": "880095098165986816", 
 "name": "????", 
 "pId": "880095098165986815" 
 }, 
 { 
 "menuId": "880095098165986817", 
 "menuName": "???????", 
 "parentId": "880095098165986815", 
 "menuUrl": "http://localhost:8080/imovie-manage/sysMenu/treeSysMenuUI", 
 "menuIcon": "", 
 "menuSort": 1, 
 "isEnable": 1, 
 "parentMenuName": "??", 
 "id": "880095098165986817", 
 "name": "???????", 
 "pId": "880095098165986815" 
 } 
]

二、解决方案

经过排查,发现是SpringMvc中文字符处理的supportedMediaTypes少了一种类型。

从浏览器发送的请求来看:

异步刷新使用的是post请求,但从服务器返回的时候,Content-Type为:text/plain;charset=ISO-8859-1

charset是ISO-8859-1,而不是UTF-8,而SpringMvc处理的中文乱码没有包含这种类型,所以导致中文乱码。

所以最后的解决方法是在SpringMvc中文处理加上text/plain这个类型,如下:

Java代码

<value>text/plain;charset=UTF-8</value>

具体如下:

Java代码

<property name="supportedMediaTypes"> 
 <list> 
 <value>application/json;charset=UTF-8</value> 
 <value>text/html;charset=UTF-8</value> 
 <value>text/plain;charset=UTF-8</value> 
 </list> 
</property>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

实现无刷新下拉联动的Ajax+Servlet(附代码)

ajax获取json数据为undefined应该如何使用

文档

Ajax加载JSon数据时数据内中文乱码怎么办

Ajax加载JSon数据时数据内中文乱码怎么办:这次给大家带来Ajax加载JSon数据时数据内中文乱码怎么办,解决Ajax加载JSon数据时数据内中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。一、问题描述使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经
推荐度:
标签: 数据 乱码 解决
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top