Terve,
Pythoni on 2.7.
Tämä toimii:
s=u"j\u00e4\u00e4r\u00e4p\u00e4\u00e4" print s jääräpää
Mutta kun se mun stringi sattuu nyt olemaan ilman tuota u:ta ja tällä mennään, niin millä ihmeellä saan sen printtaamaan tuon jääräpää sanan. Olen yrittänyt vaikka minkälaista decode ja encode juttua, mutta ei onnistu. Oikeesti menee hermo.
s="j\u00e4\u00e4r\u00e4p\u00e4\u00e4" print s j\u00e4\u00e4r\u00e4p\u00e4\u00e4
Jos stringin välttämättä tuollaisessa muodossa on, niin ensin sinun pitää vaikkapa säännöllisellä lauseella poimia kirjaimien koodit, ja muuttaa ne sitten kirjaimiksi.
import re s="j\u00e4\u00e4r\u00e4p\u00e4\u00e4" def replace(m): return unichr(int(m.group(1), 16)) print re.sub('\\\u([a-z0-9]{4})', replace, s)
Tarkoitatko tätä?
>>> s="j\u00e4\u00e4r\u00e4p\u00e4\u00e4" >>> print s j\u00e4\u00e4r\u00e4p\u00e4\u00e4 >>> print s.decode('unicode-escape') jääräpää >>>
Sieltä taisikin tulla enempi pythonia tuntevalta parempi vastaus :)
Kiitti!
Se oli just tuo decode('unicode-escape'). Aivan älyttömän vaikea löytää, mutta onneksi on hieno foorumi!
Laitetaan vielä lähdelinkki listaukseen, josta löytyy mm. tuo unicode-escape:
https://docs.python.org/2/library/codecs.html#python-specific-encodings
Aihe on jo aika vanha, joten et voi enää vastata siihen.