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

Python Discussion :

Encodage python sqlite


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    maçon
    Inscrit en
    Novembre 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : maçon

    Informations forums :
    Inscription : Novembre 2004
    Messages : 270
    Points : 699
    Points
    699
    Par défaut Encodage python sqlite
    Bonjour,
    Je veux remonter des données d'un fichier texte dans sqlite3 via python 2.4.
    Jusque là no soucy .
    La ou ça se gate , c'est pour les caractères accentués . J'ai essayé plein de choses et je me retrouve toujours avec des caractères bizarres dans la base.
    Le champ dans sqlite est de type VARCHAR.
    Voici un exemple de ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # -*- coding: iso-8859-15 -*- 
    import apsw
    vCnx = apsw.Connection('mabase.s3db')
    vCurseur = vCnx.cursor()
    vValeur ='é'.decode('iso-8859-1')
    vCurseur.execute("insert into test (champc) values('" + vValeur+ "')")
    j'ai aussi essayé ça car sqlite utilse UTF8 ou UTF16
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # -*- coding: iso-8859-15 -*- 
    import apsw
    vCnx = apsw.Connection('mabase.s3db')
    vCurseur = vCnx.cursor()
    vValeur =u'é'.encode('UTF-16')
    vCurseur.execute("insert into test (champc) values('" + vValeur.decode('UTF-16')+ "')")
    Le résultat est toujour le même dans la base cad que
    champc = é
    qd je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print locale.getdefaultlocale()
    le resulat est ('fr_FR','cp1252')

    Si quelqu'un peut m'aider ...
    d'avance merci

  2. #2
    Membre éclairé
    Profil pro
    maçon
    Inscrit en
    Novembre 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : maçon

    Informations forums :
    Inscription : Novembre 2004
    Messages : 270
    Points : 699
    Points
    699
    Par défaut
    J'ai trouve enfin je pense.
    J'utilisais l'interface apsw ,et il semble que celle ci gere mal les caractéres accentués
    J'ai utilisé l'interface pysqlite2 et les données accentuées sont nickel dans ma base
    voici un p'tit exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        vCnx = sqlite.Connection('labase')
        vCurseur = vCnx.cursor()
     
     
        vValeur = 'é'
        vCurseur.execute("insert into test (champa) values('" + vValeur+ "');")
        vCnx.commit()
    vala vala

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

Discussions similaires

  1. Crontab et encodage python
    Par bm dans le forum Général Python
    Réponses: 9
    Dernier message: 28/04/2014, 21h03
  2. Réponses: 7
    Dernier message: 27/04/2014, 23h43
  3. [Debutant] Python-SQLite lire colonne BLOB
    Par Slumpy dans le forum Général Python
    Réponses: 25
    Dernier message: 29/11/2010, 11h10
  4. Encodage avec Sqlite
    Par Jiyuu dans le forum Général Python
    Réponses: 6
    Dernier message: 20/06/2010, 15h12
  5. python sqlite encodage
    Par ekremyilmaz dans le forum Général Python
    Réponses: 2
    Dernier message: 26/11/2008, 14h55

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