Comment implémenter UTF-8 dans les applications Web Java
Comprendre le problème
UTF L'encodage -8 est essentiel pour prendre en charge les caractères internationaux, y compris les alphabets spéciaux comme le finnois et le cyrillique, dans le Web Java. applications.
Créer la solution
Pour résoudre ce problème, suivez ces étapes :
1. Configurez le server.xml de Tomcat :
Configurez le connecteur pour encoder les paramètres d'URL à l'aide de UTF-8 :
<Connector port="8080" ... URIEncoding="UTF-8"/>
2. Créez un CharsetFilter :
Définissez un filtre pour garantir que toutes les demandes et réponses sont traitées en UTF-8 :
public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws IOException, ServletException { // Set the default character encoding request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); next.doFilter(request, response); }
3. Ajoutez le filtre à 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>
4. Définir l'encodage de la page JSP :
Dans web.xml :
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
Alternativement, dans chaque page JSP :
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
5. Spécifiez les balises méta HTML :
Assurez-vous que les navigateurs comprennent le codage de la page HTML :
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
6. Configurer la connexion JDBC :
<Resource name="jdbc/AppDB" ... url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&characterEncoding=UTF-8"/>
7. Configurer la base de données et les tables MySQL :
Créez la base de données et les tables en utilisant UTF-8 :
CREATE DATABASE `ID_development` ... COLLATE utf8_swedish_ci; CREATE TABLE `Users` ... COLLATE utf8_swedish_ci;
8. Configurez le serveur MySQL :
Dans my.ini ou my.cnf, définissez le jeu de caractères par défaut :
[client] default-character-set=utf8 [mysql] default-character-set=utf8
9. Encodez correctement les requêtes GET :
Instruit par Tomcat, les navigateurs doivent encoder les paramètres de requête GET en UTF-8.
Latin1 et UTF-8 dans les requêtes GET :
HTTP est par défaut Latin1 pour l'encodage d'URL, ce qui entraîne un encodage différent pour certains caractères comme "ä". Cela pose des défis pour les applications Web traitant les demandes.
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!