Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für das Problem verstümmelter chinesischer Namensdateien in Python2

Lösung für das Problem verstümmelter chinesischer Namensdateien in Python2

高洛峰
高洛峰Original
2017-03-24 17:04:301503Durchsuche

Python2 unterstützt standardmäßig kein Chinesisch. Im Allgemeinen fügen wir am Anfang des Programms #-*-coding:utf-8-*- hinzu, um dieses Problem zu lösen ()-Methode Beim Öffnen der Datei wird der chinesische Name als verstümmelte Zeichen angezeigt.

Lassen Sie mich zunächst über die Codierungsprobleme in Python sprechen. Strings werden in Python grob in zwei Formen unterteilt: str und Unicode. Die häufig verwendeten Codierungstypen von str sind utf-8, gb2312, gbk usw ., Python verwendet Unicode als Basistyp für die Codierung. Was str aufzeichnet, ist ein Byte-Array, bei dem es sich nur um ein bestimmtes Codierungsspeicherformat handelt. Welches Format es letztendlich in eine Datei ausgibt oder ausdruckt, hängt vollständig davon ab, wie es durch die Decodierungscodierung decodiert wird. Unicode ist ein Symbolsatz, der der abstrakten Codierung ähnelt , die nur den Binärcode des Symbols festlegt, aber nicht angibt, wie dieser Binärcode gespeichert werden soll. Das heißt, es handelt sich nur um eine interne Darstellung und kann nicht direkt gespeichert werden, daher muss beim Speichern eine Speicherform angegeben werden, z als utf-8 warten.

Die Funktionen für die Codierungskonvertierung in Python sind:

decode(char_set) zum Implementieren der Decodierung von char_set in Unicodeencode(char_set) zum Implementieren der Codierung von Unicode in char_set


Lösung für das Problem verstümmelter chinesischer Namensdateien in Python2

Wenn Sie sich die Python-Dokumentation ansehen, finden Sie:

In dieser Methode open(filename, 'w' ), muss der Parameterdateiname Unicode-codierte Parameter sein.

Ich habe zuvor #-*-coding:utf-8-*- hinzugefügt, um die Kodierung auf utf-8 festzulegen. Beim Aufruf dieser Methode zur Übergabe von Parametern muss der variable Dateiname in Unicode dekodiert werden .

Zum Beispiel filename='Chinese.txt', wenn Sie open() verwenden, schreiben Sie open(filename.decode('utf-8'), 'w') so, dass der chinesische Dateiname entsteht erstellt wird nicht verstümmelt.


Das obige ist der detaillierte Inhalt vonLösung für das Problem verstümmelter chinesischer Namensdateien in Python2. 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