Warum ist UTF-8 codiert chars nicht richtig angezeigt werden, die auf remote-Maschine nur
Wenn ich diese Webseite, die physisch als UTF-8 kodiert und hat sich UTF-8 als der angegebene Zeichensatz auf meinem PC (mit firefox) es keine Zeichen angezeigt werden, müssen codiert werden, mit mehreren bytes richtig wie das ö in Björk, klicken Sie bitte auf den link und öffnen Sie dann die B-Abschnitt zu sehen, was ich meine
http://www.jthink.net/songkong/reports/FixSongsReport00084/FixSongsReport00084_index.html
(Die Seite ist gehostet auf einem linux-server mit jakarta-tomcat)
Jedoch die original-Datei zeigt vollkommen in Ordnung, im Firefox beim speichern als Datei auf meiner Festplatte. Ich habe sogar kopiert die Datei wieder von der remote-site auf meinen lokalen PC zu esure hatte die gleiche Datei, und es zeigt noch okay.
So kommen, wie es nicht angezeigt, ok, auf der website, könnte es ein tomcat problem ?
BEARBEITEN
In dem Kommentar auf die erste Antwort sagt es ich brauche, um sicherzustellen, dass ich brauche, um die Antwort encoding richtig, wie mache ich das - die html-Seite nicht generiert code tomcat ist nur der Bereitstellung der Seite wie
Note, die ich nicht zu analysieren uri-Parameter als utf8, und ich möchte nicht, dass die jsp-Seiten, die ich erstellt, codiert in UTF8, diese Arbeit Strafen, wie ISO-8859-1 und können brechen, wenn ich diese ändern. Ich will einfach nur .html-Seiten angezeigt werden als UTF8 , und nur für diese Anwendung, ich habe mehrere Anwendungen im webapps-Ordner und ich bin mit Tomcat 7
BEARBEITEN
So wie bereits in der Antwort unten habe ich Hinzugefügt, um meine web.xml Datei
<filter>
<filter-name>CharacterEncoding</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>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
und das hat irgendwie funktioniert, die url wird jetzt korrekt angezeigt, aber der link funktioniert nicht.
Wenn ich einen Blick auf die Quelle, es scheint mit dem richtigen link, aber die Fehlermeldung zeigt es als eine erweiterte notation eher als UTF8.
Ihr den gesamten Bericht, so können Sie klicken Sie auf den link in der linken Seite und sehen das Ergebnis in der rechten Seite
http://www.jthink.net/songkong/reports/FixSongsReport00084/FixSongsReport00084.html
Selbst wenn ich den link kopieren und einfügen funktioniert nicht, da der link scheint thats eingefügt bekommen ist falsch, obwohl es dann korrigiert sich
- Sie können
<meta contentType="text/html; charset=UTF-8"/>
als wenn Sie wollen zu setzen .html-Seiten auf UTF-8 - Ich schon tun, bitte siehe Quelle
- meta-tags für die HTTP-Variablen ignoriert werden, wenn die Seite über serviert
http://
aus einem realen webserver stattfile://
von der lokalen Festplatte die Datei-system. Stattdessen sind die tatsächlichen HTTP-response-Header sind verwendet worden. Jeder selbst respektiert web-Entwickler sollten das wissen. - wir danken Ihr für das.. so wie die response-encoding-header ist
ISO-8859-1
änderung der Zeichenkodierung in der .html ist nicht wirklich möglich - Wenn man sich den thread habe ich vorgeschlagen, Sie können ändern Sie den ContentType für html-Dateien für eine bestimmte Webanwendung (mit dem mime-Zuordnungen). Für jsps, sollten Sie die Zeichencodierung in der jsp selbst wenn Sie etwas anderes als der Standardwert.
- Sie können auch versuchen, speichern Sie Ihre html-Dateien in ISO-und Sie werden arbeiten, ohne änderung der tomcat-Konfiguration.
- Das wird nicht funktionieren, denn Sie müssen in UTF-8, wie einige Charaktere verwenden Zeichen, die nicht kodiert werden kann, als ISO-8859-1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Seite ist wieder in dieser header :
aber Ihre Seite ist in UTF-8 codiert.
Können Sie Folgen Sie diesen thread, um zu sehen, wie ändern Sie den header der Antwort :
Tomcat 7.0.35 set HTTP-response-header Content-Type charset für statische HTML-Dateien
[BEARBEITEN]
Das zweite problem bezieht sich auf die Kodierung der server erwartet, dass die urls kodiert sein.
Als Sie die Kodierung mit utf-8, können Sie einfach aktualisieren Sie Ihre tomcat-config mit diesem :
Aber was würde ich dringend empfehlen, nicht auf diese Art von Zeichen, die weder in Ihren urls noch in Ihre html-Datei-Namen. Es gibt mehr Dinge, die hier beteiligt sind, wie die Codierung, die verwendet wird durch Ihre Nutzer, wenn der server startet ..... und viele weitere Anpassungen, die Sie benötigen zu kümmern über. Nur zu vermeiden, verwenden Sie diese chars halten Sie Weg von diesen Problemen.
[/EDIT]
Hoffe, es hilft.