Mysql
 sql >> Base de données >  >> RDS >> Mysql

Codage des caractères chinois de l'entrée JSF

À condition que vous utilisiez bien Facelets (qui utilise UTF-8 par défaut) et que vous n'utilisiez pas PrimeFaces ajax (qui est connu pour perturber l'encodage du corps de la requête ), votre problème a 2 causes :

  1. Le codage des caractères du pilote MySQL JDBC n'a pas été défini sur UTF-8. Cela provoquait des caractères brouillés dans la base de données.

  2. Le codage des caractères de la console Eclipse n'a pas été défini sur UTF-8. Cela provoquait des caractères brouillés dans System.out .

Les solutions sont :

  1. Ajouter useUnicode=yes et characterEncoding=UTF-8 paramètres à la connexion JDBC. Vous pouvez le spécifier soit comme chaîne de requête dans l'URL JDBC

    jdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
    

    ou en tant que propriétés de connexion dans la source de données JDBC, exactement de la même manière que vous avez spécifié le nom d'utilisateur, le mot de passe, etc.

  2. Dites à Eclipse d'utiliser UTF-8 comme encodage de console par Window> Preferences> General> Workspace> Text File Encoding :

Voir aussi :