176 votes

Changer l'encodage par défaut de Python ?

J'ai beaucoup de problèmes "impossible de coder" et "impossible de décoder" avec Python lorsque je lance mes applications depuis la console. Mais dans le Eclipse PyDev IDE, le codage des caractères par défaut est fixé à UTF-8 et je vais bien.

J'ai fait des recherches sur le réglage de l'encodage par défaut, et les gens disent que Python supprime le fichier sys.setdefaultencoding au démarrage, et nous ne pouvons pas l'utiliser.

Quelle est donc la meilleure solution ?

1 votes

Voir l'article de blog L'Illusoire setdefaultencoding .

3 votes

The best solution is to learn to use encode and decode correctly instead of using hacks. Cela était certainement possible avec python2 au prix de ne jamais oublier de le faire / d'utiliser systématiquement votre propre interface. D'après mon expérience, cela devient très problématique lorsque vous écrivez du code que vous voulez faire fonctionner à la fois avec python2 et python3.

1voto

Boris Points 1440

Vous pourriez changer l'encodage de tout votre système d'exploitation. Sur Ubuntu, vous pouvez faire ceci avec

sudo apt install locales 
sudo locale-gen en_US en_US.UTF-8    
sudo dpkg-reconfigure locales

0voto

twasbrillig Points 6949

Cela a réglé le problème pour moi.

import os
os.environ["PYTHONIOENCODING"] = "utf-8"

0 votes

Pas pour moi. Mais cela a fonctionné quand on a exporté la variable dans le shell avant d'entrer dans python, ou quand on a utilisé reload(sys) ; sys.defaultencoding("utf-8").

0voto

Alex Tsurika Points 69

Définir l'encodage par défaut du système d'exploitation UTF-8 . Par exemple, sur ubuntu, éditez le fichier /etc/default/locale et régler :

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X