ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码

ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

?Copyright 蕃薯耀 2017年7月27日

http://www.cnblogs.com/fanshuyao/

一、问题描述

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

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

Java代码  

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

SpringMvc中文字符处理:

Java代码  

  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>

返回的结果有中文乱码:

Js代码  

  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这个类型,如下:

Java代码  

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

具体如下:

Java代码  

  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>

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

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

?Copyright 蕃薯耀 2017年7月27日

http://www.cnblogs.com/fanshuyao/

时间: 2024-11-06 04:33:38

ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码的相关文章

Linux中文显示乱码?如何设置centos显示中文

Linux中文显示乱码?如何设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的.以centos为例,操作Linux怎么查看语言,设置修改语言 1.查看当前系统语言 登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言.如 2.查看安装的语言包 查看是否有中文语言包可以在终端输入 lo

在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

            在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码. 这个问题困惑了我很久,也走了很多弯路.经过不断的探究终于找到了问题的解决方案. 第一:查看自己的mysql的编码.cmd->mysql –uroot –p -->输入自己的mysql的密码->输入 SHOWVARIABLES LIKE 'character%';(如果装mysql时默认安装的话,会出现很多latin1,而不是我下面的全部utf-8,这是因为mysql默认的编码是lati

Redis 中文入库成功,读取数据写入文件乱码问题

最近需要用到redis ,但是在编码这个问题上,纠结了很久. 需求 : 每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果. 使用的redis模块 : redis-py 问题 : 入库正常,读取数据成功,以GBK编码写入文件出现异常. 通过以下参数连接 redis : client  = redis.StrictRedis(host='localhost', port=6379, db=0, password="***") 从

SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题

一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US.UTF-8",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面. 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件(vim  $HOME/.i18n)

java 随机生成一个中文、判断某个string是否是中文以及打印出全部的中文

现在网上大多数用于判断中文字符的是 U+4E00..U+9FA5 这个范围是只是"中日韩统一表意文字"这个区间,但这不是全部,如果要全部包含,则还要他们的扩展集.部首.象形字.注间字母等等; 2E80-A4CF: 包含了中日朝部首补充.康熙部首.表意文字描述符.中日朝符号和标点.日文平假名.日文片假名.注音字母.谚文兼容字母.象形字注释标志.注音字母扩展.中日朝笔画.日文片假名语音扩展.带圈中日朝字母和月份.中日朝兼容.中日朝统一表意文字扩展A.易经六十四卦符号.中日韩统一表意文字.彝

中文编解码,可用于存中文或者编码具体参数的作用,防止被知道

1 BASE64Encoder base64=new BASE64Encoder(); 2 String encoderStr=base64.encode(string.getBytes("utf-8")); 3 System.out.println(encoderStr); 4 5 BASE64Decoder base64decoder=new BASE64Decoder(); 6 byte b[]=base64decoder.decodeBuffer(encoderStr); 7

传入一个中文字符串,返回一个字符串中的中文拼音

/** * @param 传入一个中文字符串 * @return 返回一个字符串中的中文拼音 */ private String getNameNum(String name) { if (!Utils.isStrEmpty(name)) { int len = name.length(); char[] nums = new char[len]; for (int i = 0; i < len; i++) { String tmp = name.substring(i); nums[i] =

ORACLE根据中文拼音首字母排序、取得中文拼音首字母函数

根据中文拼音首字母排序.取得中文拼音首字母函数     介绍根据中文的首字母.笔画.部首排序函数[NLSSORT]:           1).首字母           SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M');           2).笔画     SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_STRO

将中文字符串分割为数组 解决str_split中文乱码php

首先来介绍str_split()这个函数: 它的作用是将字符串分割为数组: 例如: $str='abcde';str_plite($str); 打印结果如下:Array(    [0] => a    [1] => b    [2] => c    [3] => d    [4] => e) 看似很好用的样子:但是作为中国程序员:不可避免的要和中文打交道: 这时候再用str_splite就会悲剧的发现乱码了::: 不要怕:preg_splite可以拯救这个问题: 当然是需要配