IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

JDBC et problème d'accents


Sujet :

JDBC Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Par défaut JDBC et problème d'accents
    Bonjour à tous,

    J'ai parcouru le forum et essayé les quelques solutions proposées mais ça ne fonctionne pas.

    Lorsque j'effectue un INSERT dans une table (Teradata) à partir de mon servlet avec un statement.executeQuery, les caractères accentués sont remplacés par des points d'interrogation.

    J'ai essayé de convertir les données avec un "java.net.URLEncoder.encode" mais je ne parviens pas à retrouver mon texte d'origine dans la BDD.

    Je ne sais plus trop quoi faire maintenant. Auriez-vous des idées sur les causes de mon problème ?

    Merci.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il faudrait savoir comment est encodée ta base de données (UTF-8 ?) et appliquer l'encodage au niveau des servlets (et JSP)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Par défaut
    Oui, il me semble que ma base est en UTF-8.

    J'ai passé mon projet JDBC en "Text file encoding" en "UTF-8" et fais hérité toutes les classes de ce projet.

    Idem pour mon projet "Graphique" et j'ai modifié l'en-tête de ma page JPS en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    Pas de changement, j'ai toujours des ? à la place des accents

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    La première instruction de ta servlet devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setCharacterEncoding("UTF-8");
    Si tu utilises un framework MVC2, tu peux également utiliser un Filter pour faire ça...
    Avec Struts 1.x, tu pourrais passer par le RequestProcessor (ou LayoutRequestProcessor, etc...)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Par défaut
    Toujours des points d'interrogation malgré l'ajout du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setCharacterEncoding("UTF-8");
    Sinon, je n'utilise pas de Framawork, juste les librairie de base Java javax.servlet et java.sql

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mailgifson Voir le message
    Oui, il me semble que ma base est en UTF-8.
    Il faudrait en être sûr...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    A quel endroit affiches tu ton texte?

    Car suivant le problème peut être dans le client affichant le données récupérées depuis la base, sans que ni la base, ni la chaîne l'alimentant aient un problème...

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Les caractère peuvent avoir été perdus à plusieurs endroit. A chaque niveau, il faut t'assurer:
    que les deux parties "parlent" le même encodage
    que le destinataire sache quoi en faire.

    Dans ton cas on a ceci:


    browser -> servlet -> jdbc -> mysql -> table de la DB -> mysql -> jdbc -> jsp -> browser.


    Il y a peu de chance que t'aie un problème entre le browser et la servlet (n'a pas le meme comportement d'erreur habituellement), ni entre servlet et jdbc (utilisation de String interne à java).

    Il faut donc controler:
    que ton driver jdbc parle bien l'utf-8 avec la base de données (voir la config de ta datasource jdbc), que la table de la base de donnée et que la base de données soient ocnfiguré pour utiliser un encodage qui supporte ces caractères.

Discussions similaires

  1. JDBC-ODBC problème d'accents
    Par tripless dans le forum JDBC
    Réponses: 6
    Dernier message: 20/04/2012, 11h33
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo