Maison > développement back-end > Tutoriel Python > Introduction détaillée à la méthode d'utilisation de la fonction setdefaultencoding

Introduction détaillée à la méthode d'utilisation de la fonction setdefaultencoding

高洛峰
Libérer: 2017-03-19 15:01:13
original
1654 Les gens l'ont consulté

sys.getdefaultencoding() définit le format d'encodage par défaut de string Si vous ne spécifiez pas la méthode d'encodage lors de l'encodage et du décodage dans 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 la chaîne chinoise. .

Remarque : setdefaultencoding est obsolète après python2.7, il ne peut donc pas être utilisé dans python3.x


Exemple de code :

#!/usr/bin/env python    
#encoding: utf-8  
import sys   #引用sys模块进来,并不是进行sys的第一次加载  
reload(sys)  #重新加载sys  
sys.setdefaultencoding('utf8')  ##调用setdefaultencoding函数
Copier après la connexion

peut être exécuté correctement, mais le code suivant fonctionnera mal

#!/usr/bin/env python    
#encoding: utf-8  
import sys     
sys.setdefaultencoding('utf8')
Copier après la connexion

Vous devez d'abord recharger le module sys lors de l'appel de setdefaultencoding, car l'instruction d'importation ici n'est pas réellement sys La première instruction d'importation, c'est-à-dire qu'elle peut en fait être la deuxième ou la troisième importation du module sys. Il s'agit simplement d'une référence à sys et ne peut être rechargée que par reload.


Alors pourquoi faut-il la recharger, mais la fonction ne peut pas être appelée si elle est directement cité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), car ce site.py sera chargé automatiquement à chaque fois que vous démarrez l'interpréteur python, donc la fonction principale sera être chargé à chaque fois Après exécution, la fonction setdefaultencoding a été supprimée dès sa sortie.


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