Portál AbcLinuxu, 14. května 2025 00:42

Dotaz: Jak převést "k\u016f\u0148" do ISO-8859-2

5.8.2007 17:39 suk
Jak převést "k\u016f\u0148" do ISO-8859-2
Přečteno: 646×
Odpovědět | Admin
Je možné převést tenhle text "k\u016f\u0148"(kůň) do ISO-8859-2? Umí to nějaká utilita? Zkoušel jsem něco vytvořit v pythonu ale nějak to nešlo, asi jsem lama...
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.8.2007 19:33 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na hrubý pytel, hrubá záplata
>>> 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?
Jiří P. avatar 6.8.2007 09:01 Jiří P. | skóre: 24 | blog: programování
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
proč podvod? Je to klasický UNICODE řetězec. Python si s tím poradí bez problémů a to i jednodušeji:
>>> 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.
In a world without fences and walls, who needs Gates and Windows?
6.8.2007 09:24 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
Jenže to je něco úplně jiného. Já vycházím ze zadání, kde je tento řetězec:
"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.
Uvidíme, co na to autor dotazu.
Jiří P. avatar 6.8.2007 10:20 Jiří P. | skóre: 24 | blog: programování
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
V případě, že se budeme doslovně držet zadání, souhlasím. Pokud je ovšem autor dotazu začátečník, jeho vyjadřovací schopnosti budou omezené. Proto bych nerad, aby se lekl :)
In a world without fences and walls, who needs Gates and Windows?
6.8.2007 17:48 suk
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
Odpovědět | | Sbalit | Link | Blokovat | Admin
Děkuji všem, výsledek vypadá takto:

#!/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?
6.8.2007 18:01 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak převést "k\u016f\u0148" do ISO-8859-2
Byl jsi to ty, kdo psal ten včerejší dotaz ohledně označování myší? http://www.abclinuxu.cz/forum/show/188959
Napiš _přesně_, co potřebuješ a k čemu to bude sloužit. Jo a bude lepší, když taky napíšeš, zda používáš KDE/Qt nebo Gnome/Gtk, protože ve schránkách je trochu zmatek.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.