[Python-de] pyqt4: text ist utf-8, wird aber nicht richtig dargestellt

Andreas Perstinger andipersti at gmail.com
Do Jun 13 14:22:39 CEST 2013


On 13.06.2013 12:59, Wolfgang Meiners wrote:
> Was mich irritiert: Meine Strings haben kein attribute 'decode'. Jeder
> Aufruf von feld.decode('utf-8') führt zu einer entsprechenden
> Fehlermeldung. Das wird an python3 liegen.

Da Python3 zwischen Daten (Bytes) und Text (Strings) unterscheidet, 
macht "decode" für String-Objekte keinen Sinn. "decode" ist nur 
erforderlich, wenn Du Bytes in Strings umwandelst.
Siehe 
http://docs.python.org/3.3/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit

> Um zu sehen, was eigentlich
> in dem Feld steht, habe ich ein spezielles durch
>
> str(bytes(item.bemerkung,'utf-8'))
>
> ersetzt und bekomme als Ausgabe
>
> b'Automatisch eingef\xc3\xbcgter Text'
>
> Wie kann ich daraus also den String
> 'Automatisch eingefüger Text'
> machen?

So wie es ausschaut, ist "item.bemerkung" ein UTF8-String:
 >>> text = 'Automatisch eingefügter Text'
 >>> bytes(text, 'utf-8')
b'Automatisch eingef\xc3\xbcgter Text'
 >>> b'Automatisch eingef\xc3\xbcgter Text'.decode('utf-8')
'Automatisch eingefügter Text'

Dein Problem scheint also woanders zu liegen. Aber ohne Ausschnitte aus 
Deinem Code wird Dir keiner wirklich helfen können.

Tschau, Andreas


Mehr Informationen über die Mailingliste python-de