Okay. Also ich habe eine Bibliothek, die mir einen Wert wie das ist zu geben:Welche Kodierung erwartet das Unicode-Literal von Python 2.7?
>>> x
'ADC (10^-6 mm\xb2/s):Sep 05 2017 11-58-19 CDT'
>>> type(x)
str
>>> print(x)
ADC (10^-6 mm?/s):Sep 05 2017 11-58-19 CDT
Es ist nicht ascii, und es scheint nicht UTF-8 zu sein entweder:
>>> x.decode('utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 13: invalid start byte
und ich kann nicht einfach wandeln es:
>>> y = unicode(x)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 13: ordinal not in range(128)
Aber ich kann dies tun, mit straight-up kopieren und Einfügen:
>>> y = u'ADC (10^-6 mm\xb2/s):Sep 05 2017 11-58-19 CDT'
>>> type(y)
unicode
>>> y.encode('utf-8')
'ADC (10^-6 mm\xc2\xb2/s):Sep 05 2017 11-58-19 CDT'
>>> print(y)
ADC (10^-6 mm²/s):Sep 05 2017 11-58-19 CDT
Ich möchte x
in Typ unicode
drehen. Das Zuweisen des Werts als ein Literal funktioniert aus irgendeinem Grund. Gibt es eine Möglichkeit, die gleichen Regeln für die literale Zuweisung zu verwenden, um meine x
zu dekodieren?
Entschuldigung. Ich weiß, dass ich hier etwas sehr Einfaches vermisse.
'x.decode ('latin1')'. (Siehe [PEP-263] (https://www.python.org/dev/peps/pep-0263/)). – ekhumoro