Maison > interface Web > js tutoriel > le corps du texte

Que dois-je faire si les caractères chinois des données sont tronqués lorsque Ajax charge les données JSON ?

php中世界最好的语言
Libérer: 2018-03-30 17:41:14
original
1607 Les gens l'ont consulté

Cette fois, je vais vous montrer comment gérer les caractères chinois tronqués dans les données lorsque Ajax charge des données JSon. Quelles sont les précautions pour résoudre le problème des caractères chinois tronqués dans les données lorsque Ajax charge JSon. data Ce qui suit est un cas pratique, jetons un coup d'œil ensemble.

1. Description du problème

Lors de l'utilisation de l'actualisation asynchrone du menu parent par zTree, le serveur renvoie des caractères chinois tronqués, mais SpringMvc est utilisé dans le projet. Les caractères chinois tronqués ont été traités, pourquoi apparaissent-ils encore ?

Voici la configuration de la requête asynchrone :

Code Java

async: { 
  enable: true, 
  url: basePath + '/sysMenu/listSysMenu', 
  autoParam: ["id=parentId"] 
}
Copier après la connexion

Traitement des caractères chinois SpringMvc :

Code 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>
Copier après la connexion

Les résultats renvoyés contiennent des caractères chinois tronqués :

Code 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" 
  } 
]
Copier après la connexion

Solution

Après. Après enquête, il a été constaté qu'il manquait un type dans les types de médias pris en charge par le traitement des caractères chinois SpringMvc.

À en juger par la requête envoyée par le navigateur :

L'actualisation asynchrone utilise la demande de publication, mais lorsqu'elle est renvoyée par le serveur, le type de contenu est : text/plain ;charset=ISO-8859-1

charset est ISO-8859-1, pas UTF-8, et les caractères chinois tronqués traités par SpringMvc ne contiennent pas ce type, donc des caractères chinois tronqués sont provoqués.

La solution finale consiste donc à ajouter le type text/plain au traitement chinois SpringMvc, comme suit :

Code Java

<value>text/plain;charset=UTF-8</value>
Copier après la connexion

Les détails sont les suivants :

Java Code

 
   
    application/json;charset=UTF-8 
  text/html;charset=UTF-8 
  <value>text/plain;charset=UTF-8</value> 
   
Copier après la connexion

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Ajax+Servlet pour implémenter un lien déroulant sans actualisation (avec code)

ajax pour obtenir des données json Comment utiliser

pour undéfini

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!