Maison > Java > javaDidacticiel > Comment garantir l'encodage UTF-8 dans une application Web Java ?

Comment garantir l'encodage UTF-8 dans une application Web Java ?

Barbara Streisand
Libérer: 2024-12-21 15:51:10
original
986 Les gens l'ont consulté

How to Guarantee UTF-8 Encoding Throughout a Java Web Application?

Comment garantir l'encodage UTF-8 dans les applications Web Java

Pour activer l'encodage UTF-8 dans votre application Web Java, suivez ces étapes :

1. Configurez le fichier server.xml de Tomcat

Ajoutez la ligne suivante pour activer l'encodage UTF-8 pour les paramètres d'URL (requête GET) :

<Connector port="8080" ... URIEncoding="UTF-8" ... />
Copier après la connexion

2. Implémenter un filtre de jeu de caractères

Définissez un filtre pour forcer l'application Web à gérer toutes les demandes et réponses encodées en UTF-8 :

import javax.servlet.*;

public class CharsetFilter implements Filter {

    private String encoding = "UTF-8";

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws ServletException, IOException {
        request.setCharacterEncoding(encoding);
        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

Enregistrez le filtre dans le descripteur de déploiement :

<filter>
    <filter-name>CharsetFilter</filter-name>
    <filter-class>fi.foo.filters.CharsetFilter</filter-class>
</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

Spécifiez l'encodage de la page 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

5. Utiliser les balises HTML-Meta

Indiquez l'encodage utilisé par les pages HTML :

<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
Copier après la connexion

6. Configurer la connexion JDBC

Spécifiez l'encodage UTF-8 pour la connexion à la base de données :

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

7. Créer des tables avec un classement UTF-8

Assurez-vous que toutes les tables de base de données ont un classement UTF-8 :

CREATE TABLE  `Users` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `name` varchar(30) collate utf8_swedish_ci default NULL
    PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci ROW_FORMAT=DYNAMIC;
Copier après la connexion

8. Vérifiez la configuration du serveur MySQL

Vérifiez que le serveur est configuré pour utiliser UTF-8 comme jeu de caractères par défaut :

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
Copier après la connexion

Remarque :

Alors que les caractères cyrilliques comme "ж" peuvent être traités via des requêtes GET avec encodage UTF-8, des caractères comme "ä" peuvent être codés en Latin1 (ISO-8859-1), provoquant des incohérences.

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!

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