Avatar billede hkb-x Nybegynder
20. juli 2009 - 16:49 Der er 6 kommentarer og
1 løsning

HTTP request data til unicode i python

HTTP requests encoder unicode efter tabellem beskrevet her: http://jrgraphix.net/research/unicode_blocks.php?block=1 hvilket vil sige at æ representeres ved %E6 og å ved %E5 osv. Jeg vil gerne kunne konverteres sådanne ASCII strenge til unicode i python men hvordan gør jeg. Jeg kan ikke finde nogle python libs der kan oversætte fra den encoding hvilket jeg finder meget mærkeligt.
Avatar billede erikjacobsen Ekspert
20. juli 2009 - 17:08 #1
Ikke helt som du beskriver. Hvis siden du kommer fra har tegnsæt iso8859-1, så kommer det som %E6 osv. Det har ikke noget med unicode at gøre. Hvis siden har tegnsæt utf-8 så kommer æ som %C3%A6

Ikke fordi det løser dit problem, selvfølgelig.
Avatar billede arne_v Ekspert
20. juli 2009 - 17:11 #2
Avatar billede hkb-x Nybegynder
20. juli 2009 - 17:34 #3
Yes jeg fik løst det med urllib.unquote()  men den oversætter ret fuceked til unicode. tegn som er i ASCII bliver decodet til byteværdier langt over 1000 istedet for < 128 som de burde så nu kan jeg få input ind men kan så bare ikke vise det?!?
Avatar billede hkb-x Nybegynder
20. juli 2009 - 17:42 #4
ahh, det er æøå den tyrer helt der op. det giver jo ingen mening
Avatar billede hkb-x Nybegynder
20. juli 2009 - 17:42 #5
de burde jo ligge under 255
Avatar billede hkb-x Nybegynder
20. juli 2009 - 17:49 #6
fandt løsningen. Den streng der bliver returneret af urllib indeholder bytes med en værdi over 128 mens dens encoding er ASCII. AV!

men det kan løses således:

urllib.unquote_plus(HTTP_VAR).decode('raw_unicode_escape')

hvor HTTP_VAR er den HTTP encodede variabel/input
Avatar billede arne_v Ekspert
20. juli 2009 - 18:37 #7
Er det sådan et princip du har at bruge de forslag du får og selv tage point ??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester