Unicode: Decodieren funktioniert nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
m00nsome
User
Beiträge: 2
Registriert: Sonntag 5. August 2007, 17:12

Sonntag 5. August 2007, 17:22

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! :)
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Sonntag 5. August 2007, 17:50

eventuell hilft das?

Code: Alles auswählen

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

Sonntag 5. August 2007, 18:18

@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.
m00nsome
User
Beiträge: 2
Registriert: Sonntag 5. August 2007, 17:12

Sonntag 5. August 2007, 18:33

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! :)
Antworten