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.