java - spring responsebody 返回中文乱码
迷茫
迷茫 2017-04-18 10:06:55
0
6
737
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(6)
洪涛

Cela dépend aussi de l'encodage de votre conteneur Web... Il disparaîtra si vous marchez dessus.

迷茫

Fournit une prise en charge de l'encodage pour l'adaptateur d'encodage spring-mvc. Je me souviens bien que le nom de la balise est :

<mvc:convertisseurs de messages>

Les biens de

PHPzhong
  1. spring mvc ajoute le support de Jackson

  2. Ajouter la configuration Spring MVC

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg name="defaultCharset" value="UTF-8"/>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

ou remplacer StringHttpMessageConverter

/* 将 */ public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
/* 改 */ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
伊谢尔伦

Utilisez d'autres outils de capture de paquets pour tester si le résultat de votre retour est en chinois UTF-8.
Les problèmes surviennent souvent à la source ou à la dernière étape.
Si la page est tronquée, votre page JSP ne définit pas le jeu de caractères "UTF-8".
S'il y a des caractères tronqués dans la console du navigateur, utilisez F12 Network et regardez l'en-tête de réponse Content-Type = text/html, Encoding, etc.
Il n'y a aucun problème avec ces liens. Il s'agit probablement d'un problème avec les paramètres de l'environnement String. Les réponses précédentes méritent votre référence.

大家讲道理

Lors de l'utilisation de springmvc pour renvoyer le format json dans le projet, les caractères chinois étaient tronqués. J'ai regardé le code source de springmvc et j'ai découvert que l'encodage par défaut de la classe StringHttpMessageConverter est ISO-8859-1 (tragédie, pourquoi pas). Quelque chose d'aussi gros que springmvc n'utilise pas utf-8 ? C'est impossible) Comprendre)

Voici la solution,

fichier de configuration springmvc :

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
        <property name="messageConverters">   
            <list>   
                <bean class = "org.springframework.http.converter.StringHttpMessageConverter">   
                    <property name = "supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>   
                        </list>   
                    </property>   
                </bean>   
            </list>   
        </property>  
    </bean>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
        <property name="messageConverters"> 
            <list>  
                <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 
                    <property name="supportedMediaTypes"> 
                        <list> 
                            <value>text/html; charset=utf-8</value> 
                        </list> 
                    </property> 
                </bean>
            </list>  
        </property> 
    </bean>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">   
        <property name="interceptors">  
            <list>     
            </list>  
        </property>  
    </bean>  

Pour utiliser cette configuration, supprimez <mvc:annotation-driven /> de springmvc et n'utilisez pas la configuration d'initialisation par défaut de springmvc

Ty80

Avez-vous ajouté CharacterEncodingFilter ? Sinon, essayez de l'ajouter et voyez si cela ne fonctionne pas
Si cela ne fonctionne pas :
Quelle version de spirng et quelle version de tomcat utilisez-vous ?
Et :
Ce n'est pas aussi compliqué que ce qui est dit plus haut. . . Regarder les morceaux de XML est ennuyeux. . .

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal