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

  1. #1
    Membre habitué
    probleme de lecture d'un fichier utf-8 unix avec un programme tournant sous windows
    bonjour ,

    j'ai des fichiers en UTF-8 sous unix un programme de lecture du fichier qui fonctionne sous windows.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: utf_8 -*- 
    import string
    import sys
    import datetime
    import os
     
     
    # Base Application
    if __name__ == '__main__':
         with open(nom_fichier_path_in, 'r') as fichier: 
                for ligne in fichier:
                     id =  lnsrc[0:3].strip()
                     adr= ligne[91:123].strip()


    j'ai un problème dans on fichier de la position 92 à 123 j'ai ceci "APPT N° 23 "
    si je réalise un print(adr) j'obtiens "APPT N°3".

    l'utilisation de la commande encode ne change rien. si je convertie le fichier unix au format Windows j'ai un effet de décalage de 2 caractères.L'application est exécuter sous windows pas sous linux et ne peut pas être lancer sous linux.

  2. #2
    Membre expert
    Salut,

    Essaye ça : #10
    Citation Envoyé par wiztricks Voir le message
    Dans la police de caractères cp1252 on ne sait pas représenter des caractères hors de 0..255.
    Or \U0001f609 çà fait 128521 en décimal...
    Pour coder çà il faut de l'utf-8/utf-16/... et le préciser à l'open des fichiers (en écriture) via open(...., encoding='utf-8').
    Cependant, ce n'est peut être pas ce qu'il y a de mieux à faire : çà dépend de ce qu'on fait avec les fichiers après.

  3. #3
    Membre habitué
    merci la solution de qualification du type de fichier fonctionne

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
            with open(nom_fichier_path_in, 'r' , encoding='utf-8') as fichier:

###raw>template_hook.ano_emploi###