如何解決Ajax加載JSon數(shù)據(jù)中文亂碼問題-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何解決Ajax加載JSon數(shù)據(jù)中文亂碼問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

六安網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(liá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>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決Ajax加載JSon數(shù)據(jù)中文亂碼問題”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

名稱欄目:如何解決Ajax加載JSon數(shù)據(jù)中文亂碼問題-創(chuàng)新互聯(lián)
分享URL:http://muchs.cn/article4/deepoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、電子商務(wù)、微信小程序、外貿(mào)建站網(wǎng)站內(nèi)鏈、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)