Maison > base de données > tutoriel mysql > Comment implémenter correctement le codage UTF-8 dans les applications Web Java ?

Comment implémenter correctement le codage UTF-8 dans les applications Web Java ?

Barbara Streisand
Libérer: 2024-12-29 20:56:10
original
305 Les gens l'ont consulté

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

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"/>
Copier après la connexion

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);
}
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Alternativement, dans chaque page JSP :

<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
Copier après la connexion

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' />
Copier après la connexion

6. Configurer la connexion JDBC :

<Resource name="jdbc/AppDB" ...
            url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&amp;characterEncoding=UTF-8"/>
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal