佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 解決Ajax加載JSon數(shù)據(jù)中文亂碼問(wèn)題

解決Ajax加載JSon數(shù)據(jù)中文亂碼問(wèn)題

熱門標(biāo)簽:阿里云 團(tuán)購(gòu)網(wǎng)站 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Linux服務(wù)器 服務(wù)器配置 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 電子圍欄

一、問(wèn)題描述

使用zTree的異步刷新父級(jí)菜單時(shí),服務(wù)器返回中文亂碼,但項(xiàng)目中使用了SpringMvc,已經(jīng)對(duì)中文亂碼處理,為什么還會(huì)出現(xiàn)呢?

此處為的異步請(qǐng)求的配置:

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> 

返回的結(jié)果有中文亂碼:

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" 
  } 
] 

二、解決方案

經(jīng)過(guò)排查,發(fā)現(xiàn)是SpringMvc中文字符處理的supportedMediaTypes少了一種類型。

從瀏覽器發(fā)送的請(qǐng)求來(lái)看:

異步刷新使用的是post請(qǐng)求,但從服務(wù)器返回的時(shí)候,Content-Type為:text/plain;charset=ISO-8859-1

charset是ISO-8859-1,而不是UTF-8,而SpringMvc處理的中文亂碼沒(méi)有包含這種類型,所以導(dǎo)致中文亂碼。

所以最后的解決方法是在SpringMvc中文處理加上text/plain這個(gè)類型,如下:

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> 

總結(jié)

以上所述是小編給大家介紹的解決Ajax加載JSon數(shù)據(jù)中文亂碼問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 用ajax傳遞json到前臺(tái)中文出現(xiàn)問(wèn)號(hào)亂碼問(wèn)題的解決辦法
  • JQuery ajax 返回json時(shí)出現(xiàn)中文亂碼該如何解決

標(biāo)簽:萍鄉(xiāng) 蚌埠 廣元 衡水 棗莊 衢州 江蘇 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決Ajax加載JSon數(shù)據(jù)中文亂碼問(wèn)題》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    盘锦市| 马尔康县| 马鞍山市| 朝阳县| 富平县| 阳山县| 枞阳县| 本溪| 沛县| 南江县| 河南省| 溧水县| 肥东县| 英德市| 大理市| 卢龙县| 兴海县| 西安市| 崇阳县| 五寨县| 买车| 曲水县| 土默特右旗| 和林格尔县| 英德市| 邛崃市| 志丹县| 旺苍县| 平潭县| 白朗县| 怀化市| 德惠市| 广水市| 陈巴尔虎旗| 商洛市| 德惠市| 丹阳市| 灵川县| 舒兰市| 友谊县| 乌恰县|