Maison > Article > interface Web > Comment gérer les caractères chinois tronqués lors de l'envoi d'ajax dans springmvc
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
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!