Seite 1 von 1

Unicode: Decodieren funktioniert nicht

Verfasst: Sonntag 5. August 2007, 17:22
von m00nsome
Hallo Python-Forum,

mich beschäftigt nun schon seid 2 Tagen ein kleines Problem mit Unicode Strings. Scheinbar werden manche Zeichen korrekt codiert andere dagegen werden im "Klartext" übertragen. Mir ist es leider noch nicht gelungen beides unter einen Hut zu bringen... :(

Code: Alles auswählen

# -*- coding: latin-1 -*- 

TestEncoded="Tést Text \x26#38\x3B"
TestDecoded=TestEncoded.decode('utf-8')
print TestDecoded
raw_input()
Unklar ist mir auch das "#38". Leider hab ich keinen Einfluss auf die Daten die geliefert werden.

Ich bin noch sehr neu bei python.. aber mitlerweile auch schon sehr verzweifelt.. =)

Vielen Dank schonmal! :)

Verfasst: Sonntag 5. August 2007, 17:50
von thelittlebug
eventuell hilft das?

Code: Alles auswählen

>>> test=u"Têst \x26#38\x3B"
>>> print test
Têst &
lgherby

Verfasst: Sonntag 5. August 2007, 18:18
von BlackJack
@m00nsome: Wenn die Kodierung 'latin-1' stimmt, und 'ê' so dargestellt wird, dann kann das dekodieren mit 'utf-8' schonmal nicht klappen. Ein 'ê' in UTF-8 kodiert sähe als Latin-1 angezeigt so aus: 'ê'.

Du solltest also erst einmal herausfinden in welcher Kodierung die Daten vorliegen und diese dann zum dekodieren benutzen.

Verfasst: Sonntag 5. August 2007, 18:33
von m00nsome
Leider nein. Da das ganze mit demjson weiter verarbeitet wird.
Ich hab jetzt aber noch bisschen weiter rumgespiel. Mit

Code: Alles auswählen

.decode("latin-1")
funktionierts.. Na toll.. =)

Danke trotzdem! :)