Maison  >  Article  >  interface Web  >  Comment gérer les caractères chinois tronqués lors de l'envoi d'ajax dans springmvc

Comment gérer les caractères chinois tronqués lors de l'envoi d'ajax dans springmvc

php中世界最好的语言
php中世界最好的语言original
2018-04-04 17:12:251492parcourir

Cette fois, je vais vous expliquer comment gérer les caractères chinois tronqués lors de l'envoi d'ajax dans springmvc. Quelles sont les précautions pour traiter les caractères chinois tronqués lors de l'envoi d'ajax dans springmvc. Voici des cas pratiques, voyons. jetez un oeil une fois.

Utilisez spingmvc pour envoyer une requête via ajax en JS et renvoyer les données au format json. Le format chinois est correct lorsqu'il est retiré de la base de données, mais est-il incorrect lorsqu'il est affiché sur la page ? ? , après quelques recherches, il existe plusieurs solutions.

J'utilise sping-web-3.2.2, jar

Méthode 1 :

Dans @RequestMapping Ajouter des produits = "text/html;charset=UTF-8"

@RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8") 
public @ResponseBody String configrole() { 
 ...... 
}

Méthode 2 :

Parce qu'elle est définie par défaut dans StringHttpMessageConverter Le jeu de caractères est ISO-8859-1
, j'ai donc obtenu le code source, je l'ai modifié en UTF-8 et je l'ai empaqueté dans spring-web-3.2.2.jar

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> 
{ 
 public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); 
 .......... 
}

Méthode trois :

Modifiez les paramètres de la méthode constructeur de org.springframework.http.MediaType et ajoutez-la dans applicationContext- Configuration mvc.xml

public MediaType(String type, String subtype, Charset charset) { 
  super(type, subtype, charset); 
}

Code XML

<bean id="stringHttpMessageConverter" 
  class="org.springframework.http.converter.StringHttpMessageConverter"> 
  <property name="supportedMediaTypes"> 
    <list> 
      <bean class="org.springframework.http.MediaType"> 
        <constructor-arg value="text" /> 
        <constructor-arg value="plain" /> 
        <constructor-arg value="UTF-8" /> 
      </bean> 
    </list> 
  </property> 
</bean>

Méthode 4

org.springframework La classe .http.converter.StringHttpMessageConverter est une classe qui gère les requêtes ou les chaînes correspondantes, et le jeu de caractères par défaut est ISO-8859-1, donc quand il y a du chinois dans le json renvoyé, tronqué des personnages apparaîtront.

La classe parent de StringHttpMessageConverter possède un attribut List liste, le jeu de caractères par défaut est utilisé.

En guise de solution, ajoutez simplement le code suivant au fichier de configuration :

<mvc:annotation-driven>
<mvc:message-converters>
 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
 <value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

Si vous devez gérer d'autres types de MediaType, vous pouvez ajouter d'autres balises de valeur à la balise de liste

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 :

Quelles sont les méthodes utilisées par Ajax pour demander l'async ? Comment utiliser

Explication détaillée de l'utilisation de l'objet XMLHttpRequest d'AJAX

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!

Déclaration:
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