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 :

Lire (et convertir) un fichier en unicode/utf-16


Sujet :

Python

  1. #1
    Membre confirmé Avatar de sopsag
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 224
    Par défaut Lire (et convertir) un fichier en unicode/utf-16
    Bonjour à tous,

    un petit problème de débutant :

    j'ai un fichier texte (généré par un autre programme que je ne contrôle pas) qui est codé en utf-16.
    Je ne suis pas bien sûr que ce soit de l'utf-16, tout ce que je sais, c'est qu'il commence par 0xFF 0xFE et qu'ensuite les octets impairs vallent 0.
    (un truc dans ce gout là : FF FE 2F 00 4F 00 64 00)
    Du fait que TOUS les octets impairs vallent 0, je sais que je peux le convertir en ascii sans perte d'info.

    Quand je lis ce fichier en mode texte il me jette, quand je le lis en binaire puis essaye de le convertir en ascii, il me jette aussi (il ne sait pas convertir 0xFF 0xFE).

    Que dois-je faire pour lire un fichier texte utf-16 (ou autre) et le convertir en chaîne ascii ?

    Merci d'avance...

  2. #2
    Membre Expert
    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
    Par défaut
    essaie d'ouvrir le fichier de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import codecs
    f = codecs.open(filename, 'rt','utf16')
    s = f.read()
    FF FE, c'est le BOM (byte-order mark), qui indique l'ordre d'encodage des octets (little-endian ou big-endian) dans le fichier.
    Pour le convertir en ASCII, si c'est vraiment nécessaire, un simple str(s) devrait faire l'affaire je pense (en Python 2.x du moins)

  3. #3
    Membre confirmé Avatar de sopsag
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 224
    Par défaut
    impec !
    merci

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

Discussions similaires

  1. Outils (vista) pour convertir des fichiers vers l'UTF-8 ?
    Par Sergejack dans le forum Windows
    Réponses: 5
    Dernier message: 12/12/2008, 13h44
  2. [Audio] Lire/Convertir un fichier son
    Par ganjah06 dans le forum Multimédia
    Réponses: 2
    Dernier message: 31/07/2008, 00h10
  3. lire un fichier en unicode
    Par kha_yassine dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 20/06/2007, 18h13
  4. lire un fichier en Unicode=prob
    Par aptyp dans le forum C++
    Réponses: 19
    Dernier message: 10/11/2006, 13h41
  5. Convertir un fichier unicode en ansi?
    Par Faiche dans le forum C++
    Réponses: 7
    Dernier message: 06/10/2006, 08h15

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