Beim Lesen mit UTF-8-Stückliste in Python codieren
Geben Sie ** 'utf_8_sig' ** an.
Beispiel für das Lesen einer Datei
io.opne(filename, "r", encoding="utf_8_sig")
Konvertieren Sie vom str-Typ (UTF-8) in den Unicode-Typ
uni_string = unicode(str_string, 'utf_8_sig')
Ich war ein wenig süchtig danach, UTF-8 in Python zu lesen, also werde ich es aufschreiben, um nicht zu vergessen.
UTF-8 kann eine Stückliste (Byte Order Mark) haben. Dies ist eine Kennung, dass die Codierung UTF-8 ist. Die ersten 3 Bytes der Datei sind 'EF BB BF'.
Das Problem ist, dass es UTF-8 mit Stückliste und UTF-8 ohne Stückliste gibt.
Die Stückliste wird UTF-8 in Windows 'Notepad' und Excel hinzugefügt. Linux und Mac scheinen UTF-8 grundsätzlich ohne Stückliste zu handhaben.
Dieses Mal wollte ich die in Excel bearbeitete CSV-Datei laden, daher musste ich die Stückliste berücksichtigen.
Ich dachte, ich habe es in das Dokument geschrieben.
Offizielles Dokument UTF-8 mit Stücklistenzeichen
Wenn Sie den Codierungscode auf 'utf_8_sig' setzen, Wenn eine Stückliste vorhanden ist, wird diese übersprungen und gelesen. Wenn keine Stückliste vorhanden ist, kann sie so wie sie ist als UTF-8 gelesen werden.
ImportCSV.py
import io
with io.open('sample.csv', 'rt', encoding='utf_8_sig') as f:
print(f.readlines())
Zeichencodes machen in Python in der Regel süchtig. Wenn Sie jedoch beim Konvertieren in einen Unicode-Typ mit Zeichencodes richtig umgehen können, müssen Sie sich keine Gedanken über Zeichencodes machen.
Recommended Posts