Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Methode zur Verwendung der Setdefaultencoding-Funktion

Detaillierte Einführung in die Methode zur Verwendung der Setdefaultencoding-Funktion

高洛峰
高洛峰Original
2017-03-19 15:01:131591Durchsuche

sys.getdefaultencoding() legt das Standardkodierungsformat von string fest. Wenn Sie beim Kodieren und Dekodieren in Python keine Kodierungsmethode angeben, verwendet Python die Standardkodierung.

Die Standardkodierung von python2.x ist ASCII, weshalb die meisten Python-Kodierungsfehler auftreten: „UnicodeDecodeError: ‚ASCII‘-Codec kann Byte nicht dekodieren ...“.

# programming:utf-8, das eine ähnliche Funktion hat, wird verwendet, um die Codierung des Quellcodes zu definieren. Wenn es nicht definiert ist, kann der Quellcode die chinesische Zeichenfolge nicht enthalten .

Hinweis: setdefaultencoding ist nach Python2.7 veraltet und kann daher nicht in Python3.x verwendet werden


Codebeispiel :

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

kann korrekt ausgeführt werden, aber der folgende Code geht schief

#!/usr/bin/env python    
#encoding: utf-8  
import sys     
sys.setdefaultencoding('utf8')

Sie müssen beim Aufruf von setdefaultencoding zuerst das Sys-Modul neu laden, da die Importanweisung hier nicht tatsächlich vorhanden ist sys Die erste Importanweisung, das heißt, dies kann tatsächlich der zweite oder dritte Import des sys-Moduls sein. Dies ist nur ein Verweis auf sys und kann nur durch erneutes Laden neu geladen werden.


Warum muss es also neu geladen werden, aber die Funktion kann nicht aufgerufen werden, wenn sie direkt in Anführungszeichen gesetzt ist? Da die Funktion setdefaultencoding nach dem Aufruf durch das System gelöscht wird, ist sie nicht mehr vorhanden, wenn sie durch den Import referenziert wird. Daher muss das sys-Modul einmal neu geladen werden, damit setdefaultencoding verfügbar ist und die aktuelle Zeichenkodierung des Interpreters verfügbar ist im Code geändert.


Im Lib-Ordner des Python-Installationsverzeichnisses gibt es eine Datei namens site.py, in der Sie main() --> setencoding()-->sys.setdefaultencoding(encoding), da diese site.py jedes Mal automatisch geladen wird, wenn Sie den Python-Interpreter starten, also auch die Hauptfunktion jedes Mal geladen werden Nach der Ausführung wurde die Funktion setdefaultencoding gelöscht, sobald sie herauskommt.


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Methode zur Verwendung der Setdefaultencoding-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn