Character encoding Problem mit Tomcat
Gibt es seltsame Zeichen-Codierung geht. Ich bin mit JSP (JSTL) und Struts mit Tomat 6.
Habe ich meine JSP-Seite-Codierung als solche:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
Das Problem ist, wenn ich versuchen, geben Sie die url durch Verwendung von encodeURI als solche:
<script type="text/javascript">
$('#mailer_filter').change(function(){
var val = $(this).val();
console.log(val);
console.log(escape(val));
console.log(encodeURI(val));
location.href = 'mailList.a?' + encodeURI($(this).val());
});
</script>
den parameter der action (java-Ende) raus kommt:
Gaz Métro
jedoch auf dem front-end-es wird angezeigt als:
Gaz Métro
welches ist der richtige Weg. Was kann ich dagegen tun??
- Wo sehen Sie den Wert auf der Java-Ende? In der log-Datei? Wenn ja, kann es sein, dass der editor, dass Sie zum Lesen der Protokolldatei die Datei nicht erwartet UTF-8...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgenden
1) HTML-Code
2) Browser-Einstellung für den IE
Ansicht -- -- Unicode-Codierung (UTF-8)
3) Tomcat-Server
server.xml - Im Connector-tag Hinzugefügt, "URIEncoding" - Attribut als
catalina.sh/catalina.Fledermaus - Hinzugefügt folgende
4) MIME-Typ der Antwort sollte "application/x-www-form-urlencoded"
Haben Sie diese Schritte befolgt?
http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q8
Unten kopiert:
UTF-8 als character encoding für alles ist eine sichere Wette. Diese Arbeit sollte für so ziemlich jede situation.
Um vollständig zu wechseln, um UTF-8 verwenden, müssen Sie die folgenden änderungen vornehmen:
Set URIEncoding="UTF-8" auf Ihrem in server.xml. Referenzen: HTTP Connector, AJP-Connector.
Verwendung einer Zeichencodierung filter mit der Standard-Kodierung auf UTF-8 eingestellt
Ändern Sie alle Ihre JSPs zu gehören charset Namen in den contentType.
Verwenden Sie zum Beispiel
<%@page contentType="text/html; charset=UTF-8" %>
für die üblichen JSP-Seiten und<jsp:directive.page contentType="text/html; charset=UTF-8" />
für die Seiten in XML-syntax (aka JSP-Dokumente).Ändern Sie alle Ihre servlets, um die Art des Inhalts, für die Antworten und charset-name der content-type auf UTF-8.
Verwenden
response.setContentType("text/html; charset=UTF-8")
oderresponse.setCharacterEncoding("UTF-8")
.Ändern, content-Generierung-Bibliotheken, die Sie verwenden (Velocity, Freemarker, etc.) die Verwendung von UTF-8 und geben Sie die UTF-8 in die Inhalte geben Antworten, die Sie erzeugen.
Deaktivieren Sie alle Ventile oder Filter, die Lesen können request-Parameter vor dem character-encoding filter-oder jsp-Seite eine chance hat, die Codierung auf UTF-8. Weitere Informationen finden Sie unter http://www.mail-archive.com/[email protected]/msg21117.html.
Setzen Sie den parameter URIEncoding der tomcat-Anschluss (in der server.xml) zu UTF-8:
E. g.: