2017-01-26 3 views
1

Meine Tomcat-server.xml- und web.xml- und jsp-Seitencodierung wurde auf "UTF-8" festgelegt. Wenn HTML-Form ein Sonderzeichen wie post post, dann verwendet Java-Code StringEscapeUtils.unescapeHtml4 (str) absichtlich um dieses Sonderzeichen Ď in der db zu speichern. Wenn ich den Wert aus der DB herausgeholt habe, dann drucke das System aus und im JSP-Tag zeigen beide Stellen das Symbol an? (ein Fragezeichen). Mit dem anderen Beitrag "€ symbol nicht definiert" löste es das jsp rendering Problem. Aber Tomcat System-Ausgang/Konsole immer noch anzeigen? (Fragezeichen)struts HTML-Zeichencodierung und -decodierung

Danke.

+0

Welche Datenbank Sie die Daten auf persistierende und welcher Zeichensatz wird in der Datenbank konfiguriert? –

+0

Es ist Orakel-Datenbank. Ich habe kein dba-Privileg, aber ich kann das in im db-Feld sehen. Kannst du mir auch mitteilen, wie der Charakter am besten in DB gespeichert wird? Ich dachte, das Speichern im Datenbankfeld ist einfacher. Aber es stellt sich heraus, dass es scheint, dass ich zur Kodierung konvertieren muss. – Windy

Antwort

0

Ok, es klingt, als hätten Sie bestätigt, dass die Daten auf Datenbankebene beibehalten und entsprechend unterstützt werden. Ich würde jetzt versuchen, einen Servlet-Filter hinzuzufügen, damit Ihre Struts-Webanwendung alle Anfragen und Antworten als UTF-8-codiert behandelt.

einen Zeichensatz-Filter wie die folgende Definition:

<filter-name>Set Character Encoding</filter-name> 
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 

<!-- Define filter mappings for the defined filters --> 
<filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <servlet-name>action</servlet-name> 
</filter-mapping> 
+0

Ich habe diese Einstellung bereits in meinem web.xml setCharacterEncoding /* , aber ich mit der "action" ersetzt Wert. Es funktioniert immer noch nicht. . Bitte beraten. danke – Windy

+0

Ja. Das habe ich in web.xml. Aber jsp noch rendern? und Systemausgabe immer noch angezeigt? . – Windy