Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/03/2015, à 08:03

totola

[Résolu] python et encodage utf-8

Bonjour,
je ne m'en sors plus avec l'encodage et python...
jusqu'à présent j'avais:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

et j'utilisais le u"éàè" pour faire afficher un texte avec accents...

seulement, j'ai un problème lorsque je lance une commande qui contient un chemin avec des accents

put('{}'.format(self.path), "/home/{}".format(bureau))

self.path contient par exemple quelque chose comme '/home/user/mémoire':


UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 19: ordinal not in range(128)

Du coup, j'ai essayé de modifier l'encodage global (dans l'en-tête):

#!/usr/bin/python
# -*- coding: utf-8 -*-

et j'enlève tous les petits 'u' mais je n'ai plus aucun texte qui contient un accent qui s'affiche en sortie... Et toujours la même erreur avec mon chemin accentué..
Donc que dois-je garder dans l'en-tête utf-8 ou l'autre? Et comment régler mon problème de chemin accentué..?

Merci!

Dernière modification par totola (Le 09/03/2015, à 10:18)

Hors ligne

#2 Le 09/03/2015, à 08:33

totola

Re : [Résolu] python et encodage utf-8

Bon j'ai trouvé pour le chemin en fouillant dans /usr et en regardant un exemple d'un programme en python:

self.path_utf8 = self.path.encode('utf8')

Par contre l'exemple que je regarde a bien un en-tête en utf-8 et apparemment pas de problèmes dans l'affichage des textes accentués... Contrairement à moi..

Hors ligne

#3 Le 09/03/2015, à 08:58

jplemoine

Re : [Résolu] python et encodage utf-8

Je crois qu'il faut que le fichier texte (qui contient ton code) soit aussi encodé en python : il faut regardre dans sauvegarder sous si tu n'a pas une option pour le faire. (NB : gedit sait le faire)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#4 Le 09/03/2015, à 09:16

bruno

Re : [Résolu] python et encodage utf-8

http://sametmax.com/lencoding-en-python … our-toute/

C'est pas forcément très bien écrit (anglicismes) mais c'est globalement de bon conseil.

@jplemoine : tu veux dire encodé en utf8 (python n'est pas un encodage wink)

Dernière modification par bruno (Le 09/03/2015, à 09:17)

Hors ligne

#5 Le 09/03/2015, à 10:16

totola

Re : [Résolu] python et encodage utf-8

Ah oui... c'est pas bête! wink
J'utilise Geany: Documents ---> Définir l'encodage
Et ça roule! smile

Merci!

PS: Mais est ce qu'il vaut mieux choisir utf-8 pour tout?

Dernière modification par totola (Le 09/03/2015, à 10:17)

Hors ligne

#6 Le 09/03/2015, à 10:25

jplemoine

Re : [Résolu] python et encodage utf-8

bruno a écrit :

tu veux dire encodé en utf8 (python n'est pas un encodage wink)

oui. Bien sûr. Je voulais dire que le fichier texte (qui contient le code python) doit être encodé en utf-8 :
- on met ce qu'il faut dans l'entête
- on met la bonne option au moment de l'enregistrement du fichier.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#7 Le 09/03/2015, à 10:48

tiramiseb

Re : [Résolu] python et encodage utf-8

Salut,

PS: Mais est ce qu'il vaut mieux choisir utf-8 pour tout?

Oui, ça simplifie la vie. D'autant qu'avec Python3 ce sera en UTF-8 par défaut.
ISO-8859-1 date de 1986, une époque où l'interopérabilité n'était pas aussi importante...

UTF-8 et, de manière plus générale, Unicode, c'est le futur.

Hors ligne

#8 Le 09/03/2015, à 23:26

totola

Re : [Résolu] python et encodage utf-8

OK merci!
Je valide l'utf8 alors!
smile

Hors ligne