Maison > Java > javaDidacticiel > Comment implémenter correctement le codage UTF-8 dans une application Web Java ?

Comment implémenter correctement le codage UTF-8 dans une application Web Java ?

DDD
Libérer: 2024-12-25 03:12:12
original
280 Les gens l'ont consulté

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

Obtention de l'encodage UTF-8 dans les applications Web Java

Problème : Implémentation de l'encodage UTF-8 pour prendre en charge les langues non latines caractères pour le texte et spécifiques alphabets.

Environnement :

  • Développement : Windows XP
  • Production : Debian
  • Base de données : MySQL 5.x
  • Navigateurs : Firefox2, Opera 9.x, FF3, IE7, Google Chrome

Solution :

  1. Configurer le serveur.xml de Tomcat :

    • Activer l'encodage UTF-8 pour les paramètres GET :
  2. CharsetFilter :

    • Forcer l'application Java à gérer toutes les requêtes et réponses en UTF-8.
    • Ajoutez ce filtre au 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>
      Copier après la connexion
  3. Encodage des pages JSP :

    • Spécifiez l'encodage des pages JSP dans web.xml ou ajoutez la balise méta suivante à chaque page :
  4. Connexion JDBC :

    • Utiliser ?useEncoding=true&amp;characterEncoding =UTF-8 en connexion URL.
  5. Base de données et tables MySQL :

    • Créer une base de données et des tables avec DEFAULT CHARACTER SET=utf8 COLLATE=utf8_swedish_ci.
  6. Configuration du serveur MySQL :

    • Définissez default-character-set=utf8 dans my.ini (Windows) ou mon.cnf (Linux).
  7. Procédures et fonctions MySQL :

    • Spécifiez explicitement le jeu de caractères UTF-8, par exemple :
      CRÉER UNE FONCTION... RETOURNE UN JEU DE CARACTÈRES DE TEXTE utf8

Gestion des requêtes GET :

  • Par défaut, les URL sont codées en Latin1, ce qui pose des problèmes avec les fichiers non-ASCII caractères.
  • Pour résoudre ce problème, définissez le codage d'URL dans server.xml comme UTF-8.
  • Demandez aux navigateurs de lire les pages en UTF-8 à l'aide de balises méta et d'en-têtes de requête.

UTF-8 vs Latin1 dans les requêtes GET :

  • Les requêtes POST sont codées en UTF-8 par navigateurs.
  • Pour les requêtes GET, bien que la page soit définie en UTF-8, certains caractères peuvent toujours être codés en Latin1. Cela entraîne un encodage mixte, ce qui rend difficile pour l'application Web de gérer correctement les paramètres de requête.

Références :

  • 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 mètres-mishandle-utf-8-encoding-td18720039.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
  • http://www. utf8-chartable.de/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal