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

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

熱門標簽:福建微碼電話機器人 大學(xué)校門地圖標注 外呼系統(tǒng)api對接 廣西智能外呼系統(tǒng)多少錢 荊州智能電銷機器人 平?jīng)龈叩碌貓D標注商戶要收費嗎 銷售電銷機器人詐騙 提高電話機器人接通率 地圖標注與公司業(yè)務(wù)關(guān)系

一、問題描述

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

此處為的異步請求的配置:

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)過排查,發(fā)現(xiàn)是SpringMvc中文字符處理的supportedMediaTypes少了一種類型。

從瀏覽器發(fā)送的請求來看:

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

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

所以最后的解決方法是在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> 

總結(jié)

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

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

標簽:黔東 樂山 衡陽 德陽 婁底 內(nèi)江 邯鄲 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標題《解決Ajax加載JSon數(shù)據(jù)中文亂碼問題》,本文關(guān)鍵詞  解決,Ajax,加載,JSon,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決Ajax加載JSon數(shù)據(jù)中文亂碼問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于解決Ajax加載JSon數(shù)據(jù)中文亂碼問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章