Erläuterung der Konvertierungsmodul-Codecs in Python (mit Beispielen)

不言
Freigeben: 2018-10-29 17:14:41
nach vorne
7419 Leute haben es durchsucht

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.

0. Kodierung

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编码
Nach dem Login kopieren

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. Sehen Sie sich die Kodierungsmethode an

(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.

2. Python-Kodierung

Wenn Python die Kodierung konvertieren muss, wird der Konvertierungsprozess wie folgt durchgeführt:

Originalkodierung-> Zielkodierung

Python wird intern mit Unicode verarbeitet. Bei der Verwendung von Unicode muss jedoch berücksichtigt werden, dass es zwei Kodierungsformate gibt, die insgesamt 65536 Codepunkte haben UCS-4 mit 2147483648g Codepunkten.

Bestimmen Sie, welche Kodierungsmethode das installierte Python verwendet:

import sys
print(sys.maxunicode)
Nach dem Login kopieren

Wenn der Ausgabewert 65535 ist, dann ist es UCS-2, wenn die Ausgabe 1114111 ist, ist es UCS-4-Kodierung.

In internen Code konvertieren:

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())
Nach dem Login kopieren

Ausgabe:

<class &#39;str&#39;>
<class &#39;bytes&#39;>
b&#39;\xe9\xa3\x8e\xe5\x8d\xb7\xe6\xae\x8b\xe4\xba\x91&#39;
<class &#39;str&#39;>
风卷残云
风卷残云
Nach dem Login kopieren

3. Codecs-Modul

Codecs wird speziell für die Codierungskonvertierung verwendet. Über seine Schnittstelle kann es auf andere Codetransformationen erweitert werden.

In python3.x können Daten vom Typ Byte direkt in andere Kodierungsformate konvertiert werden, ohne dass sie zuerst manuell in Unicode konvertiert werden müssen.

import codecs
a = "我爱你"
 # 创建utf-8编码器
look = codecs.lookup(&#39;utf-8&#39;)
type(a)
a = bytes(a,encoding=&#39;utf-8&#39;)
b = look.decode(a) 
print(b)
Nach dem Login kopieren

Ausgabe:

(&#39;我爱你&#39;, 9)
Nach dem Login kopieren

Im zurückgegebenen Tupel sind b[0] die Daten und b[1] die Länge.

** Verwenden Sie die von Codecs bereitgestellte Open-Methode, um die Sprachcodierung der geöffneten Datei anzugeben. Sie wird beim Lesen automatisch in internen Unicode konvertiert**

f = codecs.open(filepath, &#39;r&#39;, &#39;utf8&#39;)
Nach dem Login kopieren

Es gibt viele Möglichkeiten zum Lesen. f kann hier mit einer for-Schleife durchlaufen werden, natürlich kann es auch direkt mit der Funktionsmethode readline oder readlines gelesen werden.

#for i in f:
#    print(i)
#f.readline()
#f.read()
#f.readlines()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage