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

Autres SGBD Discussion :

Hsqldb forcer la connection en utf8


Sujet :

Autres SGBD

  1. #1
    Membre régulier Avatar de bankette
    Homme Profil pro
    Chef de Projet Web
    Inscrit en
    Mars 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de Projet Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 135
    Points : 89
    Points
    89
    Par défaut Hsqldb forcer la connection en utf8
    Bonjour tout le monde.

    J'arrive tout droit du forum java où l'on m'a aidé à identifier un problème. Je cherche donc une solution
    J'ai une base Hsqldb, j'utilise le code suivant pour me connecter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public class Hsqldb {
            private Connection connexion;
     
        /**
         * driver JDBC
         */
        private String jdbcDriver = "org.hsqldb.jdbcDriver";
     
        /**
         * mode mémoire
         */
        private String database = "jdbc:hsqldb:mem:database";
     
        /**
         * utilisateur qui se connecte à la base de données
         */
        private String user = "BDD";
     
        /**
         * mot de passe pour se connecter à la base de données
         */
        private String password = "";
     
        /**
         * Fonction de connexion à la base de donnée
         */
     
        public void connexionDB() {
            try {
                // On commence par charger le driver JDBC d Hsqldb
                Class.forName(jdbcDriver).newInstance();
            } catch (InstantiationException e) {
                System.out.println("ERROR: failed to load HSQLDB JDBC driver.");
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                            System.out.println("ERROR: failed to access HSQLDB JDBC driver.");
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                            System.out.println("ERROR: failed to find HSQLDB JDBC driver.");
                e.printStackTrace();
            }
     
            try {
                // Puis on se connecte à la base de données en mode mémoire
                connexion = DriverManager.getConnection(database, user, password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    mon souci est que la connexion est établie avec l'encodage par défaut de l'OS et donc sous windows ce n'est pas de l'utf8 et cela crée des problèmes dans l'affichage de mes données venant de la BDD.

    Je souhaiterai donc savoir comment forcer la connexion à Hsqldb en utf8.

    Merci
    -- Bankette --
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème....

  2. #2
    Membre régulier Avatar de bankette
    Homme Profil pro
    Chef de Projet Web
    Inscrit en
    Mars 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de Projet Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 135
    Points : 89
    Points
    89
    Par défaut
    Je revois ce vieux topic, la solution que j'ai trouvée, même si loin d'être propre fonctionne très bien.

    J'ai créé un lanceur qui lance mon application en forçant l'utf8 ainsi la connexion a la base se fait en utf8 aussi.

    Je n'ai pas trouvé d'autre moyen qu'un lanceur externe car on ne peux pas forcer l'utf8 via l'application java elle même, il faut le faire au lancement.

    Donc j'ai deux application dont une qui ne sert que à lancer l'autre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /*
    package lanceur;
     
    import java.io.IOException;
     
    /**
     *
     * @author ******
     */
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            try {
            Process proc = Runtime.getRuntime().exec("java -jar -Xms256M -Xmx1024M -Dfile.encoding=utf8 class.jar");
            } catch (IOException e) {
     
            }
        }
     
    }
    -- Bankette --
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/06/2010, 21h45
  2. python et pango : comment forcer l'utf8 ?
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 5
    Dernier message: 21/12/2009, 18h57
  3. Se connecter au serveur HSQLDB de Jboss depuis Eclipse
    Par Mockingbird dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 18/07/2009, 14h53
  4. Forcer le format ASNI ou UTF8
    Par tigzirt dans le forum SQL
    Réponses: 0
    Dernier message: 05/03/2008, 17h51
  5. Réponses: 1
    Dernier message: 06/09/2007, 09h29

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