Maison > développement back-end > Tutoriel Python > Explication détaillée de l'utilisation de la fonction setdefaultencoding

Explication détaillée de l'utilisation de la fonction setdefaultencoding

巴扎黑
Libérer: 2017-08-21 14:55:53
original
2221 Les gens l'ont consulté

sys.getdefaultencoding() définit le format d'encodage de chaîne par défaut. Si vous ne spécifiez pas la méthode d'encodage lors de l'encodage et du décodage en python, alors python utilisera l'encodage par défaut.

L'encodage par défaut de python2.x est ascii, c'est pourquoi la plupart des erreurs d'encodage python : "UnicodeDecodeError : le codec 'ascii' ne peut pas décoder l'octet...".

#coding:utf-8, qui a une fonction similaire, est utilisé pour définir l'encodage du code source. S'il n'est pas défini, le code source ne peut pas contenir de chaînes chinoises

. Remarque : Setdefaultencoding a été abandonné depuis python2.7, il ne peut donc pas être utilisé dans python3

Vous devez d'abord recharger le module sys lors de l'appel de setdefaultencoding, car l'instruction import ici n'est pas réellement la première instruction import de sys. , ce qui signifie que cela peut en fait être la deuxième ou la troisième fois que le module sys est utilisé, voici juste une référence à sys, qui ne peut être rechargé qu'en reload.

#!/usr/bin/env python    
#encoding: utf-8  
import sys   #引用sys模块进来,并不是进行sys的第一次加载  
reload(sys)  #重新加载sys  
sys.setdefaultencoding('utf8')  ##调用setdefaultencoding函数
Copier après la connexion
Alors pourquoi faut-il la recharger, mais la fonction ne peut pas être appelée si elle est directement référencée ? Étant donné que la fonction setdefaultencoding est supprimée après avoir été appelée par le système, elle n'est plus là lorsqu'elle est référencée via l'importation. Par conséquent, le module sys doit être rechargé une fois pour que setdefaultencoding soit disponible et que le codage de caractères actuel de l'interpréteur puisse être. modifié dans le code.

Dans le dossier Lib du répertoire d'installation de python, il y a un fichier appelé site.py, dans lequel vous pouvez trouver main() --> setencoding()-->sys.setdefaultencoding(encoding) , Parce que ce site.py sera automatiquement chargé à chaque démarrage de l'interpréteur python, la fonction principale sera exécutée à chaque fois et la fonction setdefaultencoding sera supprimée dès sa sortie.
#!/usr/bin/env python    
#encoding: utf-8  
import sys     
sys.setdefaultencoding('utf8')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal