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
907 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!

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