Erklären Sie ein für alle Mal klar und deutlich die verstümmelten chinesischen Schriftzeichen in Python2.
Damit sich Anfänger keine Sorgen mehr über verstümmelte chinesische Schriftzeichen in Python2 machen müssen!
Weitere Informationen finden Sie bei Bruder Huang, dem Python-Schulungslehrer der Diem Company:
1. Das von Ihnen geschriebene Codemodul muss die Codierung angeben.
Wenn der Code die Codierung nicht angibt, Python werden standardmäßig alle Zeichen verwendet. Es handelt sich um ASCII-Code.
ASCII-Code unterstützt nur 256 Zeichen, daher wird ein Fehler gemeldet.
Sie müssen also #coding:utf-8 oder #coding:gbk vor dem Code schreiben
Aber im Allgemeinen schreiben Sie #coding:utf-8
2 Alle Codierungen in Python2 sind auf Unicode vereinheitlicht
Unicode kann Zeichen aus allen Sprachen der Welt verarbeiten.
utf-8 ist eine Implementierungsform von Unicode, daher müssen Sie #coding:utf-8 vor dem Code schreiben
3 Codierungskonvertierung
Beachten Sie, dass die interne Codierung von Python2 ist Unicode.
Für andere Kodierungen ist decode() Unicode und dann encode() die von Ihnen angegebene Kodierung, sodass keine verstümmelten Zeichen entstehen.
4. Beim Sammeln von Webseiten
Codebezeichnung #coding:utf-8
Wenn die Codierung der Webseite gbk ist
Sie muss wie folgt verarbeitet werden:
html = html.decode('gbk' ).encode('utf-8')
5. Sie können auch #coding:gbk vor den Code schreiben, müssen aber auch sicherstellen, dass Ihre Codedatei in gespeichert wird gbk-Format Dies wird unter Windows wie folgt angezeigt.
6. Probleme mit chinesischen Schriftzeichen für Wörterbuchschlüssel oder -werte
#coding:utf-8
dict1 ={1:'python Weekend Training Class',2:'Consultation 010-68165761 QQ: 1465376564 '}
print dict1
# In dieser Ausgabe werden keine chinesischen Schriftzeichen angezeigt, sondern andere Kodierungen chinesischer Schriftzeichen
dict2 ={1:'python video training class', 2:'Beratung 010 -68165761 QQ: 1465376564'}
für die Eingabe von dict2:
print dict2[key]
7. Die chinesische Zeichenkodierung von Unicode wird in die Textdatei geschrieben
muss auf der Kodierung der Textdatei basieren. Konvertierung
kann kodieren ('utf-8') oder kodieren ('gbk')
Zusammenfassung: Wenn der Fehler in der Fehlermeldung „ASCII ", bedeutet dies, dass die chinesische Zeichenkodierung nicht angegeben ist.
----Den Codierungstyp der Zeichenfolge abrufen-------------------------------------------- ---- ---------------------------------
>>> date = urllib2 .urlopen("http ://www.baidu.com")
>>> d = date.read()
>>> import chardet
>>> ; chardet.detect( d)
{'confidence': 0.99, 'encoding': 'utf-8'}