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 :

résultat différent de la fonction [pack] entre Linux et Windows


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 10
    Points
    10
    Par défaut résultat différent de la fonction [pack] entre Linux et Windows
    Bonjour,

    Je développe mes scripts sous Windows XP et l'exécution finale est sur une machine sous Linux (Debian Etch). Pour des soucis de cohérence j'utilise donc la version 2.4.4 de python qui est la version standard sous Debian Etch.

    Je reçoit des données binaires par TCPIP, j'utilise donc les fonctions pack/unpack du module struct pour les décoder.
    j'ai un script qui décode partiellement les données réseaux et sauvegarde une partie de la trame dans une base de donnée (PostgreSQL)

    A un moment je génère une trame en utilisant la fonction pack.
    Normalement cette fonction retourne une chaine que l'on peut afficher et utiliser.

    j'ai remarqué que l'exécution du code suivant dans la console python ne retourne pas le même résultat sous Windows et sous Linux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import struct
    print struct.pack('<iiii', 1, 8, 1,150)
    cela me donne des caractères spéciaux, ce qui est normal, mais ce ne sont pas les mêmes entre Linux et Windows.

    Je ne vois pas pourquoi cette différence et cela me laisse perplexe.
    Quelqu'un aurait-il une explication logique à cela?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    La différence, c'est l'encodage de la console, fais un print sys.stdout.encoding et tu devrais voir la différence

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci,

    Après vérification. La console sous linux est par défaut en UTF-8, et sous windows en cp850 (Latin1).

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Attention, cp850 n'est pas Latin-1 !

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

Discussions similaires

  1. [XI]Pb Serialisation différente entre linux et window
    Par lazarel dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 02/07/2007, 13h50
  2. Partage réseau entre Linux et Windows XP
    Par creasi dans le forum Réseau
    Réponses: 2
    Dernier message: 12/03/2007, 14h43
  3. Choix écran entre linux et windows
    Par Alain15 dans le forum Windows XP
    Réponses: 2
    Dernier message: 13/08/2006, 22h42
  4. Choix écran entre linux et windows
    Par Alain15 dans le forum Administration système
    Réponses: 6
    Dernier message: 08/08/2006, 11h49
  5. Partage d'application entre Linux et windows
    Par slc dans le forum Administration système
    Réponses: 2
    Dernier message: 30/11/2005, 11h00

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