Portál AbcLinuxu, 14. května 2025 00:42
>>> a = "k\u016f\u0148" >>> b = 'u"%s"' %a >>> c = eval(b) >>> print c kůň >>> c.encode('iso-8859-2') 'k\xf9\xf2'ale je to podvod. Podle mě se stala chyba někde na začátku a normálně by se nemělo stávat, aby bylo nutné tímto směrem něco de/kódovat. Odkud se takový řetězec vzal?
>>> print u"k\u016f\u0148".encode('ISO-8859-2') kůňovšem nesmíme zapomenout, že konzole má nastavenou znakovou sadu většinou na UTF8.
"k\u016f\u0148"a přepokládám, že je uložen v nějaké proměnné. Z toho jsem vybruslil pomocí eval(), což i nadále považuji za podvod.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
print eval("u'%s'" %sys.argv[1]).encode("iso-8859-2", "replace")
Potřebuji to kvůli programu xsel který dává ten divný výstup...
Nešlo by to pomocí nějaké konzolové utility?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.