一、问题描述

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

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

  1. async: {
  2. enable: true,
  3. url: basePath + '/sysMenu/listSysMenu',
  4. autoParam: ["id=parentId"]
  5. }

SpringMvc中文字符处理:

  1. <mvc:annotation-driven>
  2. <mvc:message-converters>
  3. <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  4. <property name="supportedMediaTypes">
  5. <list>
  6. <value>application/json;charset=UTF-8</value>
  7. <value>text/html;charset=UTF-8</value>
  8. </list>
  9. </property>
  10. </bean>
  11. </mvc:message-converters>
  12. </mvc:annotation-driven>

返回的结果有中文乱码:

  1. [
  2. {
  3. "menuId": "880095098165986816",
  4. "menuName": "????",
  5. "parentId": "880095098165986815",
  6. "menuUrl": "http://localhost:8080/imovie-manage/sysMenu/listSysMenuUI",
  7. "menuIcon": "",
  8. "menuSort": 1,
  9. "isEnable": 1,
  10. "parentMenuName": "??",
  11. "id": "880095098165986816",
  12. "name": "????",
  13. "pId": "880095098165986815"
  14. },
  15. {
  16. "menuId": "880095098165986817",
  17. "menuName": "???????",
  18. "parentId": "880095098165986815",
  19. "menuUrl": "http://localhost:8080/imovie-manage/sysMenu/treeSysMenuUI",
  20. "menuIcon": "",
  21. "menuSort": 1,
  22. "isEnable": 1,
  23. "parentMenuName": "??",
  24. "id": "880095098165986817",
  25. "name": "???????",
  26. "pId": "880095098165986815"
  27. }
  28. ]

二、解决方案

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

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

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

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

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

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

具体如下:

  1. <property name="supportedMediaTypes">
  2. <list>
  3. <value>application/json;charset=UTF-8</value>
  4. <value>text/html;charset=UTF-8</value>
  5. <value>text/plain;charset=UTF-8</value>
  6. </list>
  7. </property>

然后问题就这样解决了。^_^

ztree通过ajax加载json数据中文乱码的解决方法:springmvc配置的更多相关文章

  1. vue通过ajax加载json数据

    HTML <ul id="Hanapp"> <li class="styVue" v-for="item in actList&qu ...

  2. hive加载json数据解决方案

    hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EX ...

  3. Spring MVC3返回JSON数据中文乱码问题解决(转)

    Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jack ...

  4. SQLLoader8(加载的数据中有换行符处理方法)

    SQLLDR加载的数据中有换行符处理方法1.创建测试表: CREATE TABLE MANAGER( MGRNO NUMBER, MNAME ), JOB ), REMARK ) ); 2.创建控制文 ...

  5. ArcGIS客户端API中加载大量数据的几种解决办法

    ArcGIS客户端API中加载大量数据的几种解决办法 2011-03-25 18:17 REST风格的一切事物方兴未艾,ArcGIS Server的客户端API(Javascript/Flex/Sil ...

  6. php 使用phpmailer 发送邮件(附带中文乱码的解决方法)

    下载phpmailer ,在程序里包含class.phpmailer.php 类  ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...

  7. xShell终端中文乱码完全解决方法

    xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...

  8. dojo 加载Json数据

    1.今天研究了dojo datagrid加载WebService后台传上来的数据.研究来研究去发现他不是很难.用谷歌多调试一下就好了. 2.看很多例子,这个例子能够更好的帮我解决问题:https:// ...

  9. 扩展JQUERY 表单加载JSON数据

    $.fn.extend({ //表单加载json对象数据 setForm : function (jsonValue) { var obj = this; $.each(jsonValue, func ...

随机推荐

  1. 06_Python异常处理机制

    1.异常概述 1.什么是错误: 错误是指有逻辑或语法等导致一个程序无法正常执行的问题     2.什么是异常: 异常时程序出错时标识的一种状态,程序不会向下执行而转去调用此函数的地方等待处理错误并恢复 ...

  2. Activiti7 任务人员动态分配(UEL-Value方式)

    先修改流程图 测试之前记得先删除之前发布的流程定义,并重新发布改过的 /** * 使用UEL-Value动态分配任务人员 */ @Test public void uelValue(){ // 获取R ...

  3. Redis安装问题解决方案

    Redis部署采坑记   Redis部署采坑记 问题一: 问题描述: make 编译源码时报错 问题详解: 因为缺少gcc-c++编译器的原因 解决方案: 方案一: yum -y install gc ...

  4. Java8的日期时间处理

    代码: package com.ufo.java8datetime; import java.time.Clock; import java.time.LocalDate; import java.t ...

  5. 移动APP性能评测与优化

    本文是<移动App性能评测与优化>的读书笔记. PS:说是读书笔记,其实就是摘录. 移动App的性能测试主要包括:内存使用情况.电量消耗.功能的流畅度等: 1. 内存 1.1 内存的主要组 ...

  6. conda和pip重新配置源

    conda设置源之后出现了问题,报错condaHTTPError: 之前按照网上的一些教程设置了清华源之后,过了一段时间,今天来装新的库时报了以上错误,特此记录一下. conda 源重新设置 重新去清 ...

  7. 【翻译】.NET 5 RC1发布

    9月14日,.NET5发布了(Release Candidate)RC1版本,RC的意思是指我们可以进行使用,并且RC版本得到了支持,该版本是.NET5.0的最终版本,也是11月正式版本之前两个RC版 ...

  8. PhpStorm license server(版权许可服务器)在线激活服务器集群列表

    原文链接:https://bingyishow.top/easy/55.html 服务器列表 序号 服务器(域名) 状态 1 http://www.yuanzhaoyi.cn 在线 2 http:// ...

  9. ZooKeeper学习(二)ZooKeeper实现分布式锁

    一.简介 在日常开发过程中,大型的项目一般都会采用分布式架构,那么在分布式架构中若需要同时对一个变量进行操作时,可以采用分布式锁来解决变量访问冲突的问题,最典型的案例就是防止库存超卖,当然还有其他很多 ...

  10. 2020年秋季最新Python详细入门教程!全网最新最全

    1. import # -*- coding: utf-8 -*- ## 引入新的包 import turtle import pickle # 文件操作 import tensorflow as t ...