一、問(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)站的支持!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com