2017-04-22 3 views
1

Ich habe eine Datei in utf-8 mit polnischen Zeichen codiert. Was ich tun muss, ist ein bisschen mit Worten zu spielen. Aber wenn ich Split verwenden (“„) Liste enthält \ XC5 \ x82 oder \ u0142Polnische Kodierung - Problem mit Split

filename = 'patient.txt' 
f = open(filename, 'r') 
for line in f: 
    print line 
    print line.split(" ") 
    print unicode(line,encoding(line),errors='ignore').split(" ") 
f.close() 

Ergebnis:

Pacjent lat 48 został przyjęty do Oddziału z powodu spadku tolerancji wysiłku i duszności. 
['\xef\xbb\xbfPacjent', 'lat', '48', 'zosta\xc5\x82', 'przyj\xc4\x99ty', 'do', 'Oddzia\xc5\x82u', 'z', 'powodu', 'spadku', 'tolerancji', 'wysi\xc5\x82ku', 'i', 'duszno\xc5\x9bci.'] 
[u'Pacjent', u'lat', u'48', u'zosta\u0142', u'przyj\u0119ty', u'do', u'Oddzia\u0142u', u'z', u'powodu', u'spadku', u'tolerancji', u'wysi\u0142ku', u'i', u'duszno\u015bci.'] 

Was benötige ich polnische Zeichen in einer Liste zu tun? Ist das überhaupt möglich?

Grüße
Pawel

+0

'ł', in utf8: hex' C582'; in Unicode: '\ u0142' –

Antwort

2

Sie haben bereits polnische Zeichen in der Liste. Aber wenn Sie die Liste drucken, sehen Sie nur ihre Darstellung.

>>> print u'zosta\u0142' 
został 
0

Ihre Datei ist eigentlich nicht UTF-8, aber UTF-8-BOM. Verwenden Sie open(filename, 'r', encoding='utf-8-bom')