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 :

[débutant] transformer unicode==> ascii


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [débutant] transformer unicode==> ascii
    Bonjour,
    J'ai un fichier txt contenant plusieurs mots au format unicode je suppose et lorsque je les affiche sur python j'obtiens
    \xef\xbb\xbf \xc3\xa0-c\xc3\xb4t\xc3\xa9 pour le mot à-côté

    Comment convertir facilement ces mots en ascii ou autre pour qu'ils puissent être affiché normalement

    merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Bonjour, unicode n'a pas un format unique mais peut être encodée de diverses manières. Ici, les 3 premiers octets correspondent au BOM UTF-8, il s'agit donc de ce format.
    En Python, lis le fichier sous forme binaire (important sous Windows) et puis decode l'UTF8 pour récupérer le contenu sous forme de chaîne unicode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data = open("fichier.txt", "rb").read()
    chaine = data.decode('UTF8')
    Pour l'afficher, il faut de nouveau l'encoder dans le codec du périphérique de sortie. Normalement, python s'en chargera tout seul et tu peux te contenter de faire un print de la chaîne unicode, mais occasionnellement il faut utiliser la méthode encode avec le bon codec, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print chaine.encode("iso8859-1")

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/02/2006, 09h37
  2. [LG] Transformer un code ascii en un autre
    Par JoseF dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2005, 11h47
  3. [Débutant] transformer int to string
    Par rherrad dans le forum Langage
    Réponses: 2
    Dernier message: 26/11/2005, 12h23
  4. Transformer de l'Unicode en ASCII
    Par kow_Ced dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2005, 08h53
  5. [Débutant] Transformer une appli locale en servlet
    Par msquall dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 16h10

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