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

Thomas Guettler guettli at thomas-guettler.de
Fr Jun 14 08:41:00 CEST 2013


Ich denke, Andreas hat vermutlich das Problem erkannt.

Prüfe doch mal wie lang die Zeichenkette von einem Umlaut ist: 'ä'.

Wenn es Unicode ist, dann ist die Zeichenkette ein Zeichen lang. Wenn
es utf8 ist zwei.

Gruß,
   Thomas

> 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
> _______________________________________________
> python-de maillist  -  python-de at python.org
> http://mail.python.org/mailman/listinfo/python-de


-- 
Thomas Guettler http://www.thomas-guettler.de/


Mehr Informationen über die Mailingliste python-de