hi,
ich übergebe per post einen string den ich vorher mit der javscript funktion encodeURI codiere.
wenn ich die daten nun empfange
(welche so aussehen: %3CDIV%20id=result_box%20dir=ltr%20style=%22TEXT-ALIGN:%20left%22%3E%D0%9F%D1%80%D0%B8%D0%BC ...)
nöchte ich diese wieder decodieren. mit der javascript funktion decodeURI funktioniert dies einwandfrei. nun benötigt ich aber eine python funktion die das gleiche tut.
hoffe ihr könnt mir helfen.
danke!!
decode string
danke für deine schnelle antwort.
es mag wohl funktionieren mit der funktion. das problem ist, dass der text, den ich übergebe aus kyrillischen zeichen besteht und diese dann nicht so dargestellt werden wie vor der übergabe:
vorher:
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйста, обратитесь в центр поддержки.
nachher:
Примечание: ЕÑ
es mag wohl funktionieren mit der funktion. das problem ist, dass der text, den ich übergebe aus kyrillischen zeichen besteht und diese dann nicht so dargestellt werden wie vor der übergabe:
vorher:
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйста, обратитесь в центр поддержки.
nachher:
Примечание: ЕÑ
@zuviel: Also die Zeichen im Beispiel sind UTF-8-kodiert. Genau so einen Bytestring bekommst Du dann von `urllib.unquote()`. Jetzt bitte hier: [wiki]Von Umlauten, Unicode und Encodings[/wiki] weiterlesen.
es handelt sich um den zeichensatz KOIR-8.
wenn ich cgi.fieldstorage gucke, was übergeben wird steht dort folgendes:
\xcf\xf0\xe8\xec\xe5\xf7\xe0\xed\xe8\xe5: \xc5\xf1\xeb\xe8 \xe2\xe0\xec \xed\xf3\xe6\xed\xe0 \xef\xee\xec\xee\xf9\xfc \xe2 \xe8\xf1\xef\xee\xeb\xfc\xe7\xee\xe2\xe0\xed\xe8\xe8 \xd1\xef\xe5\xf6\xe8\xe0\xeb\xfc\xed\xe0\xff \xf4\xf3\xed\xea\xf6\xe8\xff. \xcf\xee\xe6\xe0\xeb\xf3\xe9\xf1\xf2\xe0, \xee\xe1\xf0\xe0\xf2\xe8\xf2\xe5\xf1\xfc \xe2 \xf6\xe5\xed\xf2\xf0 \xef\xee\xe4\xe4\xe5\xf0\xe6\xea\xe8.
wenn ich dies nun ausprinte zeigt er mir dies an:
Ïðèìå÷àíèå: Åñëè âàì íóæíà ïîìîùü â èñïîëüçîâàíèè Ñïåöèàëüíàÿ ôóíêöèÿ. Ïîæàëóéñòà, îáðàòèòåñü â öåíòð ïîääåðæêè
dies kann ich ja nun nicht mehr mit dem zeichensatz encoden..
ich habe den text nun übergeben ohne ihn vorher mit javascript zu codieren.
ich hoffe ihr versteht mein problem..
wenn ich cgi.fieldstorage gucke, was übergeben wird steht dort folgendes:
\xcf\xf0\xe8\xec\xe5\xf7\xe0\xed\xe8\xe5: \xc5\xf1\xeb\xe8 \xe2\xe0\xec \xed\xf3\xe6\xed\xe0 \xef\xee\xec\xee\xf9\xfc \xe2 \xe8\xf1\xef\xee\xeb\xfc\xe7\xee\xe2\xe0\xed\xe8\xe8 \xd1\xef\xe5\xf6\xe8\xe0\xeb\xfc\xed\xe0\xff \xf4\xf3\xed\xea\xf6\xe8\xff. \xcf\xee\xe6\xe0\xeb\xf3\xe9\xf1\xf2\xe0, \xee\xe1\xf0\xe0\xf2\xe8\xf2\xe5\xf1\xfc \xe2 \xf6\xe5\xed\xf2\xf0 \xef\xee\xe4\xe4\xe5\xf0\xe6\xea\xe8.
wenn ich dies nun ausprinte zeigt er mir dies an:
Ïðèìå÷àíèå: Åñëè âàì íóæíà ïîìîùü â èñïîëüçîâàíèè Ñïåöèàëüíàÿ ôóíêöèÿ. Ïîæàëóéñòà, îáðàòèòåñü â öåíòð ïîääåðæêè
dies kann ich ja nun nicht mehr mit dem zeichensatz encoden..
ich habe den text nun übergeben ohne ihn vorher mit javascript zu codieren.
ich hoffe ihr versteht mein problem..
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du musst es erst in Unicode dekodieren und dann kannst du ihn in so einem Encoding enkodieren, das du es lesen kannst. Was für ein Encoding erwartet denn deine Ausgabe?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@zuviel: Was ist als 'KOI8-R' kodiert? Dein letztes Beispiel jedenfalls nicht, das war 'windows-1251':
Code: Alles auswählen
In [107]: s
Out[107]: '\xcf\xf0\xe8\xec\xe5\xf7\xe0\xed\xe8\xe5: \xc5\xf1\xeb\xe8 \xe2\xe0\x
ec \xed\xf3\xe6\xed\xe0 \xef\xee\xec\xee\xf9\xfc \xe2 \xe8\xf1\xef\xee\xeb\xfc\x
e7\xee\xe2\xe0\xed\xe8\xe8 \xd1\xef\xe5\xf6\xe8\xe0\xeb\xfc\xed\xe0\xff \xf4\xf3
\xed\xea\xf6\xe8\xff. \xcf\xee\xe6\xe0\xeb\xf3\xe9\xf1\xf2\xe0, \xee\xe1\xf0\xe0
\xf2\xe8\xf2\xe5\xf1\xfc \xe2 \xf6\xe5\xed\xf2\xf0 \xef\xee\xe4\xe4\xe5\xf0\xe6\
xea\xe8.'
In [108]: print s.decode('KOI8-R')
оПХЛЕВЮМХЕ: еЯКХ БЮЛ МСФМЮ ОНЛНЫЭ Б ХЯОНКЭГНБЮМХХ яОЕЖХЮКЭМЮЪ ТСМЙЖХЪ. оНФЮКСИЯР
Ю, НАПЮРХРЕЯЭ Б ЖЕМРП ОНДДЕПФЙХ.
In [109]: print s.decode('windows-1251')
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйст
а, обратитесь в центр поддержки.
ist das gramatikalisch so richtig
Russisch
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйст
а, обратитесь в центр поддержки.
Deutsch
Hinweis: Wenn Sie Hilfe benötigen bei der Verwendung von speziellen Funktion. Bitte
Ja, wenden Sie sich bitte an das Support-Center.
sollte doch
GER
Hinweis: Wenn Sie bei der Verwendung von speziellen Funktionen Hilfe benötigen, wenden Sie sich bitte an das Support-Center.
RUS
Примечание: Если вы находитесь в использовании специальных функций нуждаются в помощи, обращайтесь в Центр поддержки.
Russisch
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйст
а, обратитесь в центр поддержки.
Deutsch
Hinweis: Wenn Sie Hilfe benötigen bei der Verwendung von speziellen Funktion. Bitte
Ja, wenden Sie sich bitte an das Support-Center.
sollte doch
GER
Hinweis: Wenn Sie bei der Verwendung von speziellen Funktionen Hilfe benötigen, wenden Sie sich bitte an das Support-Center.
RUS
Примечание: Если вы находитесь в использовании специальных функций нуждаются в помощи, обращайтесь в Центр поддержки.
hi,
die gramatik spielt erstmal keine rolle..
ich bekomme es aber trozdem nicht hin.
ich hoffe ihr könnt mir nochmal auf die sprünge helfen
mein code:
das ergibt: ðÒÉÍÅÞÁÎÉÅ: åÓÌÉ ×ÁÍ ÎÕÖÎÁ ÐÏÍÏÝØ × ÉÓÐÏÌØÚÏ×ÁÎÉÉ óÐÅÃÉÁÌØÎÁÑ ÆÕÎËÃÉÑ. ðÏÖÁÌÕÊÓÔÁ, ÏÂÒÁÔÉÔÅÓØ × ÃÅÎÔÒ ÐÏÄÄÅÒÖËÉ.
ich möchte aber:
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйста, обратитесь в центр поддержки.
hoffe ihr könnt mir schnell weiterhelfen
die gramatik spielt erstmal keine rolle..
ich bekomme es aber trozdem nicht hin.
ich hoffe ihr könnt mir nochmal auf die sprünge helfen
mein code:
Code: Alles auswählen
myStr = "\xcf\xf0\xe8\xec\xe5\xf7\xe0\xed\xe8\xe5: \xc5\xf1\xeb\xe8 \xe2\xe0\xec \xed\xf3\xe6\xed\xe0 \xef\xee\xec\xee\xf9\xfc \xe2 \xe8\xf1\xef\xee\xeb\xfc\xe7\xee\xe2\xe0\xed\xe8\xe8 \xd1\xef\xe5\xf6\xe8\xe0\xeb\xfc\xed\xe0\xff \xf4\xf3\xed\xea\xf6\xe8\xff. \xcf\xee\xe6\xe0\xeb\xf3\xe9\xf1\xf2\xe0, \xee\xe1\xf0\xe0\xf2\xe8\xf2\xe5\xf1\xfc \xe2 \xf6\xe5\xed\xf2\xf0 \xef\xee\xe4\xe4\xe5\xf0\xe6\xea\xe8."
myStr = myStr.decode('windows-1251')
myStr = myStr.encode('KOI8-R')
print myStr
ich möchte aber:
Примечание: Если вам нужна помощь в использовании Специальная функция. Пожалуйста, обратитесь в центр поддержки.
hoffe ihr könnt mir schnell weiterhelfen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Naja, man muss dem Browser ja auch das Charset mitteilen, mit dem er encodieren soll! Also je nach Browser kann man das manuell einstellen, oder in HTML per meta-Tag setzen. Ich würde also da mal zuerst nachgucken, ob es daran liegt!