2010-12-17 6 views
4

Ich habe CharacterEncodingFilter als den ersten Filter in meiner web.xml übersetzen:CharacterEncodingFilter nicht Unicode-Text in Spring MVC 3.0

<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<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> 
<filter-mapping> 
<filter-name>encodingFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 

und in meinem JSPs diesen:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false" %> 

und diese:

Aber zum Beispiel, von einem JSP-Formular zurück zu einem Controller übergeben und dann wieder zurück zu einer JSP wird wieder: T%E

Ich bin Stunden der Google-Suche getan, kann aber die Antwort auf dieses Problem nicht finden. Jede Hilfe wäre willkommen.

+1

Führt Ihr Controller etwas mit den Formulardaten durch, wie zum Beispiel das Speichern in einer Datenbank oder einfach das Zurückspeichern in die JSP? Mit anderen Worten, könnte dies ein Problem mit der Codierung Ihrer Datenbankverbindung sein? – gutch

+1

Verwenden Sie Ajax, um das Formular zu senden und die Daten zu erhalten? – Javi

+1

Sind Sie sicher, dass Ihr Browser die richtigen Header sendet (Sie können Firebug verwenden)? Ist die Methode Ihres Formulars GET oder POST? – sinuhepop

Antwort

3

Wenn Sie auf Tomcat sind, haben Sie möglicherweise URIEncoding in Ihrem server.xml nicht festgelegt. Wenn Sie es nicht auf UTF-8 einstellen, wird es nicht funktionieren. Bewahren Sie die CharacterEncodingFilter auf jeden Fall auf. Nichtsdestotrotz, hier ist eine knappe checklist zu folgen. Es wird Ihnen auf jeden Fall helfen, dies zu erreichen.

1

Wenn CharacterEncodingFilter oder der Filter, den Sie an der Spitze der web.xml implementieren ist, lesen Sie auch erscheinen die <filter-mapping> Elemente haben, für die CharacterEncodingFilter im xml, bevor andere <filter-mapping> Elemente für andere Filter.

Ich brauchte eine lange Zeit, um das herauszufinden. Könnte für jemanden nützlich sein.

Verwandte Themen