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 :

probleme de coding


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut probleme de coding
    Bonjour
    Je voudrais enregistrer le contenu d'un TEXT avec des caractère japonais,
    et j'ai le message suivant :

    fichier.write(recup_text_doc)
    File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode characters in position 50-53: character maps to <undefined>

    comment enregistrer cette phrase ("Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué 寄せ植え en japonais)"
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from tkinter import ttk
    from tkinter import *
    fenetre=Tk()
    fenetre.title("BONSAI")
    fenetre.geometry("1257x700+10+10")
     
     
    Frame1 = Frame(fenetre)# date
    Frame1.grid(row=1, column=0,padx=5,pady=0 )
     
    phrase ="Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué 寄せ植え en japonais)"
     
     
     
    def enregistrement():
         recup_text_doc = E_Observation.get(1.0,END+'-1c')
         with open('justine.txt','w',)as fichier:
                    fichier.write(recup_text_doc)
     
    E_Observation = Text(Frame1,height=10,relief=RIDGE,
            width=80,bg="yellow",fg='red',
            font=("arial",12,"bold italic"))
    E_Observation.grid(row=0,column=0,pady=5,padx=5)
    E_Observation.insert(END,phrase)
     
    bt_enregistrer=Button(Frame1,text="Enregistrer",state=NORMAL,fg='yellow',
            command = enregistrement,bg="green3" ,font=("arial",14,"bold italic") )        
    bt_enregistrer.grid(row=1,column=0,padx=5,pady=10)
    problele

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    A priori, en utf-8... en tout cas, l'encoding par défaut (cp1252) n'est pas adapté.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut utf-8
    Merci pour votre réponse.
    Je suis en UTF-8 au début du script
    Le bloc note devrait prendre en UNICODE.
    Mais je ne trouve pas.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par triplebi Voir le message
    Je suis en UTF-8 au début du script
    Le coding:utf-8 au début du script dit juste que le script (qui est un fichier texte) est codé en utf-8. Après les fichiers que le fichier lira ou écrira, c'est selon.

    D'ailleurs vous pouvez voir dans le message d''erreur qu'il essaie d'encoder ce qu'il récupère du widget en CP1252 pour l'écrire dans le fichier: l'instruction qui plante est fichier.write(recup_text_doc).

    Citation Envoyé par triplebi Voir le message
    Mais je ne trouve pas.
    Pour comprendre la solution, il faut déjà comprendre le problème...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    C'est là que ça se joue sur l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open('justine.txt','w',)
    et tu as la même chose en read ?
    C'est quoi, recup_texte ?
    Les open doivent préciser l'encodage, j'imagine.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Pour construire une phrase incluant des caractères japonais, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    phrase = "Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué " + chr(
        23492) + chr(12379) + chr(26893) + chr(12360) + " en japonais)"
     
    print(phrase)
     
    # Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué 寄せ植え en japonais)

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut probleme persistant
    si je veux enregistrer cette phrase dans fichier.txt
    J'ai ce message erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    phrase = "Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué " + chr(
        23492) + chr(12379) + chr(26893) + chr(12360) + " en japonais)"
    erreur detecté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier.write(phrase)
      File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode characters in position 50-53: character maps to <undefined>

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par triplebi Voir le message
    si je veux enregistrer cette phrase dans fichier.txt
    J'ai ce message erreur
    Vous n'avez pas fait grand chose pour le comprendre!
    Lancez la console Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> s = phrase = "Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué " + chr(
    ... 23492) + chr(12379) + chr(26893) + chr(12360) + " en japonais)"
    >>> f = open('test.dat', 'w')
    >>> f.write(s)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\py_env\py64_38\lib\encodings\cp1252.py", line 19, in encode
        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode characters in position 50-53: c
    haracter maps to <undefined>
    >>>
    Je suis content, je reproduis le même problème.

    Et je me dis "ah ben m.... alors l'encoding par défaut est cp1252, essayons utf-8":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> f = open('test.dat', 'w', encoding='utf-8')
    >>> f.write(s)
    67
    De suite çà marche mieux...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut toujours un soucis
    Quand j'enregistre la phrase, je n'ai plus de message d'erreur, mais
    j'ouvre le fichier txt, voici le résultat :

    les quatre lettres en japonnais sont représentés par des carrés

    maintenant, je copie la phrase du fichier texte dans le text du tkinter, en mettant aussi encoding='UTF-8)
    et voila le résultat

    Style de bonsaï aussi appelé 'Bosquet'(ou Yosé-ué 寄せ植え en japonais)

    Merci beaucoup à TOUS

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par triplebi Voir le message
    Quand j'enregistre la phrase, je n'ai plus de message d'erreur, mais
    j'ouvre le fichier txt, voici le résultat :

    les quatre lettres en japonnais sont représentés par des carrés
    L'affichage d'un caractère, c'est prendre son numéro/index (par exemple 23492) et afficher le dessin correspondant. S'il n'y en a pas, c'est un patatoïde... qui dépendra de l'encoding et de la police de caractères utilisée par la console/terminal.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. probleme de code
    Par fixouille90 dans le forum Access
    Réponses: 11
    Dernier message: 09/12/2005, 15h23
  2. probleme de code simple
    Par BFH dans le forum C
    Réponses: 18
    Dernier message: 28/10/2005, 18h57
  3. [VB.Net] Probleme popup code behind
    Par balibo dans le forum ASP.NET
    Réponses: 19
    Dernier message: 17/10/2005, 12h22
  4. probleme de code formulaire
    Par bachilbouzouk dans le forum ASP
    Réponses: 45
    Dernier message: 13/04/2005, 10h01
  5. [debutant] probleme de code :-(
    Par flogreg dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 16/08/2004, 18h20

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