Python 3 utilise par défaut le codage UTF-8 pour les fichiers de code source. Dois-je quand même utiliser la déclaration d'encodage au début de chaque fichier source ? Comme # -*- coding: utf-8 -*-
Réponses
Trop de publicités?Parce que la valeur par défaut est UTF-8, vous ne devez utiliser cette déclaration que lorsque vous vous écartez de la valeur par défaut, ou si vous comptez sur d'autres outils (comme votre IDE ou votre éditeur de texte) pour utiliser cette information.
En d'autres termes, en ce qui concerne Python Ce n'est que lorsque vous voulez utiliser un encodage différent que vous devez utiliser cette déclaration.
D'autres outils, tels que votre éditeur, peuvent prendre en charge une syntaxe similaire, c'est pourquoi la fonction Spécification PEP 263 permet une grande souplesse dans la syntaxe (il doit s'agir d'un commentaire, le texte coding
doit être présent, suivi soit d'un :
o =
et un espace facultatif, suivi d'un codec reconnu).
Notez que cela ne s'applique qu'à la façon dont Python lit le code source . Il ne s'applique pas à l'exécution de ce code, donc pas à la façon dont l'impression, l'ouverture de fichiers ou toute autre opération d'E/S traduisent entre les octets et l'Unicode. Pour plus de détails sur Python, l'Unicode et les encodages, je vous conseille vivement de lire le document suivant HOWTO Python Unicode ou le très complet Unicode pragmatique parler par Ned Batchelder.
Non, si :
- l'ensemble du projet, utilisez uniquement le
UTF-8
qui est un défaut. - et vous êtes sûr que votre outil IDE n'a pas besoin de cette déclaration d'encodage dans chaque fichier.
Oui, si
- votre projet repose sur un encodage différent
- ou s'appuie sur de nombreux codages.
Pour les projets multi-encodages :
Si certains fichiers sont codés en format
non-utf-8
alors même pour ces codées dansUTF-8
vous devez également ajouter la déclaration d'encodage, car la règle d'or estExplicit is better than implicit.
Référence :
- PyCharm n'a pas besoin de cette déclaration :
configuration de l'encodage pour un fichier spécifique dans pycharm
- vim n'a pas besoin de cette déclaration, mais :
# vim: set fileencoding=<encoding name> :