Heim > Java > javaLernprogramm > Wie implementiert man die UTF-8-Codierung richtig in einer Java-Webanwendung?

Wie implementiert man die UTF-8-Codierung richtig in einer Java-Webanwendung?

DDD
Freigeben: 2024-12-25 03:12:12
Original
274 Leute haben es durchsucht

How to Properly Implement UTF-8 Encoding in a Java Web Application?

UTF-8-Kodierung in Java-Webanwendungen abrufen

Problem: UTF-8-Kodierung implementieren, um nicht-lateinische Sprachen zu unterstützen Zeichen für Text und spezifisch Alphabete.

Umgebung:

  • Entwicklung: Windows XP
  • Produktion: Debian
  • Datenbank: MySQL 5.x
  • Browser: Firefox2, Opera 9.x, FF3, IE7, Google Chrome

Lösung:

  1. Konfigurieren Sie Tomcats server.xml:

    • Aktivieren Sie die UTF-8-Codierung für GET-Parameter:
  2. CharsetFilter:

    • Erzwinge, dass die Java-App alle Anfragen und Antworten verarbeitet in UTF-8.
    • Fügen Sie diesen Filter zum hinzu web.xml:

      <filter>
        <filter-name>CharsetFilter</filter-name>
        <filter-class>fi.foo.filters.CharsetFilter</filter-class>
        <init-param>
          <param-name>requestEncoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>CharsetFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      Nach dem Login kopieren
  3. JSP-Seitenkodierung:

    • Geben Sie die Kodierung für JSP-Seiten an web.xml oder fügen Sie jeder Seite das folgende Meta-Tag hinzu:
  4. JDBC-Verbindung:

    • Verwenden Sie ?useEncoding=true&characterEncoding =UTF-8 im Anschluss URL.
  5. MySQL-Datenbank und -Tabellen:

    • Datenbank und Tabellen mit DEFAULT CHARACTER SET=utf8 erstellen COLLATE=utf8_swedish_ci.
  6. MySQL-Serverkonfiguration:

    • Setzen Sie den Standardzeichensatz=utf8 in my.ini (Windows) oder my.cnf (Linux).
  7. MySQL-Prozeduren und -Funktionen:

    • Geben Sie den UTF-8-Zeichensatz explizit an, z. B.:
      FUNKTION ERSTELLEN ... Gibt den Textzeichensatz zurück utf8

Verarbeitung von GET-Anfragen:

  • Standardmäßig sind URLs in Latin1 codiert, was zu Problemen mit Nicht-ASCII führt Zeichen.
  • Um dies zu beheben, definieren Sie die URL-Kodierung in server.xml als UTF-8.
  • Weisen Sie Browser an, Seiten in UTF-8 mithilfe von Meta-Tags und Anforderungsheadern zu lesen.

UTF-8 vs. Latin1 in GET-Anfragen:

  • POST-Anfragen werden in UTF-8 codiert von Browser.
  • Bei GET-Anfragen sind einige Zeichen möglicherweise immer noch in Latin1 codiert, obwohl die Seite als UTF-8 definiert ist. Dies führt zu einer gemischten Codierung, wodurch es für die Webanwendung schwierig wird, Anforderungsparameter korrekt zu verarbeiten.

Referenzen:

  • http://tagunov.tripod.com/i18n/i18n.html
  • http://wiki.apache.org/tomcat/Tomcat/UTF-8
  • http://java.sun.com/developer/technicalArticles/Intl/HT TPCharset/
  • http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html
  • http://cagan327.blogspot.com/2006/05 /utf-8-encoding-fix-tomcat-jsp-etc.html
  • http://cagan327.blogspot.com/2006/05/utf-8-encoding-fix-for-mysql-tomcat.html
  • http://jeppesn.dk/utf- 8.html
  • http://www.nabble.com/request-para meter-mishandle-utf-8-encoding-td18720039.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
http://www. utf8-chartable.de/

Das obige ist der detaillierte Inhalt vonWie implementiert man die UTF-8-Codierung richtig in einer Java-Webanwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage