Der Inhalt dieses Artikels befasst sich mit der Erklärung der Konvertierungsmodul-Codecs in Python (mit Beispielen). Ich hoffe, dass er für Sie hilfreich ist.
Bei der Konvertierung der Kodierung ist es normalerweise erforderlich, Unicode als Zwischenkodierung zu verwenden, d. h. zuerst andere kodierte Zeichenfolgen in Unicode zu dekodieren und dann von Unicode in eine andere Kodierung kodieren.
str1.decode('gb2312') #将gb2312编码的字符串转换成unicode编码 str2.encode('gb2312') #将unicode编码的字符串转换成gb2312编码
Hinweis:
s=‘Chinesisch’ Wenn es sich um eine utf8-Datei handelt, ist die Zeichenfolge utf8-codiert. Wenn es sich um eine gb2312-Datei handelt, ist die Codierung gb2312. In diesem Fall müssen Sie zum Durchführen der Kodierungskonvertierung zunächst die Dekodierungsmethode verwenden, um sie in die Unicode-Kodierung zu konvertieren, und dann die Kodierungsmethode verwenden, um sie in andere Kodierungen zu konvertieren.
Wenn keine bestimmte Kodierungsmethode angegeben ist, werden die Codedateien mit der Standardkodierung des Systems erstellt.
Wenn die Zeichenfolge wie folgt definiert ist: s=u’Chinese’, wird die Kodierung der Zeichenfolge als Unicode angegeben, was die interne Kodierung von Python ist, unabhängig von der Kodierung der Codedatei selbst. Sie müssen nur die Codierungsmethode direkt verwenden, um sie in die angegebene Codierung zu konvertieren.
Wenn eine Zeichenfolge bereits Unicode ist, tritt beim Decodieren ein Fehler auf. Daher muss normalerweise festgestellt werden, ob die Codierungsmethode Unicode ist , Unicode ) # Wird verwendet, um festzustellen, ob es sich um Unicode handelt
(1) Für den Notizblock verwenden wir oft „Datei“ -> Sie können die aktuelle Kodierungsmethode anzeigen.
(2) Öffnen Sie es mit Notepad++, klicken Sie auf „Menüleiste“ ->
(3) UltraEdit:
Das Kodierungsformat von Text mit unterschiedlichen Kodierungen wird basierend auf den ersten beiden Bytes des Textes definiert. Die Definition lautet wie folgt:
ANSI: Keine Formatdefinition
Unicode: Die ersten beiden Bytes sind FFFE;
Unicode Big Endian: Die ersten beiden Bytes sind FEFF;
UTF-8: Die ersten beiden Bytes sind EFBB; Bytes Das spezifische Format der Datei wird bestimmt.
Originalkodierung-> Zielkodierung
import sys print(sys.maxunicode)
c = "风卷残云" print(type(c)) c = bytes(c,encoding='utf-8') print(type(c)) print(c) b = codecs.decode(c, "utf-8") #与c.decode()等效 print(type(b)) print(b) print(c.decode())
<class 'str'> <class 'bytes'> b'\xe9\xa3\x8e\xe5\x8d\xb7\xe6\xae\x8b\xe4\xba\x91' <class 'str'> 风卷残云 风卷残云
import codecs a = "我爱你" # 创建utf-8编码器 look = codecs.lookup('utf-8') type(a) a = bytes(a,encoding='utf-8') b = look.decode(a) print(b)
('我爱你', 9)
f = codecs.open(filepath, 'r', 'utf8')
#for i in f: # print(i) #f.readline() #f.read() #f.readlines()
Das obige ist der detaillierte Inhalt vonErläuterung der Konvertierungsmodul-Codecs in Python (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!