Problème de caractères spéciaux tkinter et fichier texte (Resolu) - Python - Programmation
Marsh Posté le 18-05-2019 à 15:36:56
Je connais pas Python, mais ton problème c'est un de ces soucis d'encodage. Tu as cherché "Python activer Unicode" ou quelque chose du genre?
Marsh Posté le 18-05-2019 à 15:48:48
C'est bien ce qu'il me semble, et après mes recherches j'avais essayé divers encodages:
-quand je mets le # -*- coding: utf-8 -*- (qui doit correspondre à unicode (Unicode Transformation Format si je me trompe pas) l'affichage sur Tkinter est bon, les caractères spéciaux sont affichés correctement. Par contre le fichier texte l'est encore moins: les données entrées par l'utilisateur sont mal encodées comme avant (par exemple K?vin), et les données par défaut ("Espèce" ligne 116) qui étaient affichées normalement dans le .txt sont maintenant mal encodées aussi ("Esp?ce" )...
J'arrive pas à jongler entre les différents encodages, savoir lequel mettre dans quel situation, donc je dois louper quelque chose, une info que j'aurais pas trouvée sur le net
Marsh Posté le 18-05-2019 à 15:57:44
Si je crois ma recherche rapide pour Python3 il ne faut plus spécifier Unicode, c'est le cas par défaut (pour ton fichier texte). Après il faut peut-être repréciser que les "inputs" et/ou ton fichier de sortie sont aussi du UTF-8? Tu es bien sûr d'appeller Python3 si tu as les deux d'installés?
Marsh Posté le 18-05-2019 à 19:19:36
Alors pour Python, oui je suis bien en Python3, j'avais pris soin de désinstaller le précédent. Et tu as trouver la solution, le problème venait de l'encodage du fichier texte vierge. Donc je mets ce post en [résolu].
Merci beaucoup pour ton aide en tout cas, j'avais pas pensé que l'encodage en UNICODE plutôt que ANSI du .txt soit un problème pour python
Pour les prochains qui chercheraient une solution ici, enregistrer le fichier texte d'origine en ANSI, et préciser au début du code l'encoding en utf-8
Marsh Posté le 18-05-2019 à 19:50:23
Oui ces histoires d'encodage ça peut être vachement casse-c...
Marsh Posté le 18-05-2019 à 10:47:21
Bonjour à tous,
Pour exprimer clairement le soucis que j'ai (ou essayer d'exprimer clairement ) voilà le problème:
J'ai écrit un programme d'automatisation de compte-rendu censé me faire gagner du temps. Ce programme récupère dans une interface graphique codée avec tkinter des données entrées par l'utilisateur et qui peuvent contenir des caractères spéciaux (dans l'exemple le nom d'une personne, disons Kévin). Cette interface est faite de telle façon que dans la zone de texte où les données doivent être entrées, l'information demandée est décrite et peux contenir des caractère spéciaux aussi (dans l'exemple "Espèce" ). Enfin ces données sont utilisées pour compléter un compte-rendu vierge, contenant déjà des caractères spéciaux, et dans lequel je dois entrer les caractères spéciaux donnés par l'utilisateur.
Le problème que je rencontre est que je n'arrive pas à gérer tout ces caractères: ils s'affichent en "?" soit dans l'interface graphique, soit dans le fichier texte.
Qu'est ce que je rate dans mon code, ou qu'est ce que je devrais ajouter pour avoir un affichage correct sur mon interface graphique ET dans le fichier .txt final?
Là où je suis encore plus perdu c'est que les données "par défaut" que j'ai moi-même données dans le code (exemple "Espèce", ligne 116) sont affichées sans erreur dans le fichier .txt, mais pas ceux rentrés par l'utilisateur...
(Le code donné en dessous est une grosse simplification du code pour le rendre plus compréhensible, mais fonctionne exactement comme mon code d'origine)
PS: Je suis sous windows, python3.7.
PSS: J'espère avoir été clair dans mon explication
Merci d'avance pour votre aide!
Message édité par funisup le 18-05-2019 à 19:20:28