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 :
-
Configurer le serveur.xml de Tomcat :
- Activer l'encodage UTF-8 pour les paramètres GET :
-
CharsetFilter :
-
Encodage des pages JSP :
- Spécifiez l'encodage des pages JSP dans web.xml ou ajoutez la balise méta suivante à chaque page :
-
Connexion JDBC :
- Utiliser ?useEncoding=true&characterEncoding =UTF-8 en connexion URL.
-
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.
-
Configuration du serveur MySQL :
- Définissez default-character-set=utf8 dans my.ini (Windows) ou mon.cnf (Linux).
-
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!