Codage des caractères problème de printemps

Je suis coincé dans un gros problème avec l'encodage dans mon site web!
J'utilise spring 3, tomcat 6, et de bases de données mysql. Je veux les aider, l'allemand et le tchèque et l'anglais dans mon site web, j'ai créé tous les Jsp comme les fichiers UTF-8, et dans chaque jsp j'ai sont les suivants:

<%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

J'ai créé des messages.les propriétés (la valeur par défaut qui est tchèque), messages_de.propriétés et messages_en.les propriétés. Et tous d'entre eux sont enregistrés en tant que fichiers UTF-8.

J'ai ajouté ce qui suit à web.xml:

<filter>
    <filter-name>encodingFilter</filter-name>
    <filterclass>
          org.springframework.web.filter.CharacterEncodingFilter</filterclass>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
 </filter>

 <locale-encoding-mapping-list>
    <locale-encoding-mapping>
        <locale>en</locale>
        <encoding>UTF-8</encoding>
    </locale-encoding-mapping>
    <locale-encoding-mapping>
        <locale>cz</locale>
        <encoding>UTF-8</encoding>
    </locale-encoding-mapping>
    <locale-encoding-mapping>
        <locale>de</locale>
        <encoding>UTF-8</encoding>
    </locale-encoding-mapping>
</locale-encoding-mapping-list>

 <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>  

Et ajouter ce qui suit à mon applicationContext.xml:

<bean id="messageSource"    
    class="org.springframework.context.support.ResourceBundleMessageSource"
    p:basenames="messages"/>

<!-- Declare the Interceptor -->
<mvc:interceptors>    
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
          p:paramName="locale" />
</mvc:interceptors>

<!-- Declare the Resolver -->
<bean id="localeResolver"  
       class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

J'ai mis le useBodyEncodingForURI attribut à vrai dans l'élément de la server.xml en vertu de l': %CATALINA_HOME%/conf, également une autre fois essayé d'ajouter URIEncoding="UTF-8" à la place.

J'ai créé toutes les tables et les champs avec charset [utf8] et de collection [utf8_general_ci]

L'encodage dans mon navigateur est en UTF-8 (BTW, j'ai IE8 et Firefox 3.6.3)

Quand j'ai ouvert la Requête MYSQL navigateur et de les insérer manuellement tchèque ou allemande de données, il est inséré correctement, et affiche correctement dans mon app.

Alors, voici la liste des problèmes que j'ai:

  1. Par défaut les messages.propriétés (tchèque) doit se charger, au lieu de la messages_en.propriétés de charge par défaut.
  2. Dans le formulaire web, quand je rentre tchèque de données, puis cliquez sur soumettre, dans le Contrôleur, j'ai imprimer les données dans la console avant de l'enregistrer dans la base de données, ce qui est imprimé n'est pas correct d'avoir d'étranges caractères, et c'est exactement de données qui enregistre dans la base de données.

Je ne sais pas où est l'erreur! Pourquoi ne puis-je pas obtenir de travail bien que j'ai fait ce que les gens ne et a travaillé pour eux!!! ne sais pas..

S'il vous plaît aidez-moi, je suis coincé dans cette merde problème depuis des jours, et ça me rend fou!

Vous en remercie d'avance.

OriginalL'auteur user256872 | 2010-06-17

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *