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

PostgreSQL Discussion :

accents et langue arabe et chinoise


Sujet :

PostgreSQL

  1. #1
    Membre régulier

    Inscrit en
    Mai 2002
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 93
    Points : 85
    Points
    85
    Par défaut accents et langue arabe et chinoise
    Bonjour,
    J'ai une table qui devrait recevoir des enregistrements avec différentes langues que l'anglais et j'ai toujours des problémes de charset à chaque fois que je fais une insertion (voir un select aussi) :

    Langue francaise : toujours des problémes d'accent
    Langue arabe et chinoise : ahh ca c'est le *****

    comment configurer postgresql pour que ca fonctionne avec ces langues ,

  2. #2
    Membre averti

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Points : 404
    Points
    404
    Par défaut
    il faut que ta base soit en unicode, c'est la seule façon de gérér une multitude de langue

    KrysKool
    Christophe Chauvet
    Consultant Odoo
    Python / PostgreSQL

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Il faut spécifier le charset de la connexion à l'aide de SET NAMES.
    Pour l'arabe par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET NAMES 'ISO_8859_6';
    ou
    ou
    selon le charset choisi.

    (Je conseille UNICODE (utf-8)).

    Bien entendu, il faut mieux que la base soit aussi déclarée dans cet encodage. Si ce n'est pas le cas, pgsql effectuera une conversion.

    Plus d'info sur la doc.
    Boost ftw

  4. #4
    Membre régulier

    Inscrit en
    Mai 2002
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 93
    Points : 85
    Points
    85
    Par défaut
    J'ai trouvé une solution qui est peut être la meilleur (?)
    je vous expose l'etat de ma base :
    eserve=> \l
    Liste des bases de données
    Nom | Propriétaire | Encodage
    -----------+--------------+----------
    eserve | postgres | UNICODE
    donc ma base est en unicode, cependant lorsque j'importe un dump qui contient des accents ca ne s'accepte pas...
    alors j'ai entouré le dump par ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET CLIENT_ENCODING TO 'value';
    ...dump...
    RESET client_encoding;
    et dans value j'ai mis : WIN1256
    ce qui est l'encodage pour l'arabe et j'ai eu mes accents dans ma table et evidemen si y'a eu des entrées en arabe ca passera, en résumé j'ai vu que WIN1256 est l'encodage qui va accepter les caractéres accentués, arabe et (peut etre) chinois...
    corrigez moi si je me trompe

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    ce qui est l'encodage pour l'arabe
    Ok en fait tu ne sais pas ce qu'est un charset ?
    Tu peux écrire en arabe dans plusieurs encodages, que j'ai d'ailleurs précisés (ISO_8859_6, WIN1256 et UNICODE - y'en a d'autres, mais ce sont les seuls supportés par postgresql)
    Un charset définit une correspondance entre des nombres et des caractères, le tout codé généralement sur 8 bits (à part unicode et les trucs asiatiques qui sont sur plusieurs octets), car les données informatiques ne sont en fait que des nombres.

    j'ai vu que WIN1256 est l'encodage qui va accepter les caractéres accentués, arabe et (peut etre) chinois...
    corrigez moi si je me trompe
    Tu te trompes, c'est un charset arabe. Il est compatible ASCII mais à part ça il ne contient rien d'autre que les caractères arabes (donc y'a même pas les accents)
    Le seul encodage qui accepte tout (français, arabe, chinois) est unicode.

    Il faut donc que tu normalises tes données d'entrée, afin qu'elles soient toutes encodées de la même façon.
    Boost ftw

Discussions similaires

  1. decodage de la langue arabe
    Par otmaghost dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/04/2006, 16h04
  2. XML XSL et la langue Arabe !!
    Par nizarsm dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/03/2006, 17h58
  3. Prise en charge de la langue arabe
    Par yousseffst dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 13/03/2006, 11h33
  4. [WD9] Importation DB Access en langue arabe
    Par brizi dans le forum WinDev
    Réponses: 1
    Dernier message: 28/02/2006, 11h45
  5. problème langue arabe
    Par infoseb dans le forum Oracle
    Réponses: 2
    Dernier message: 17/10/2005, 17h44

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