UTF-8 a prevod retezcu
Honza Pazdziora
adelton na fi.muni.cz
Úterý Květen 3 19:20:52 MEST 2005
On Tue, May 03, 2005 at 03:26:04PM +0200, Jan Kasprzak wrote:
>
> potreboval bych toto: mam kod postaveny kolem XML::Parser Pomoci parsovani
> se konstruuje nejaky text, ke kteremu se obcas prihodi (zretezenim) nejaka
> data z databaze. A ted je problem v tom, ze databaze je v ISO, zatimco
> XML::Parser pracuje s UTF-8 daty. Jak tohle nejlepe udelat, abych na vystupu
> mel korektni UTF-8 text?
>
> Omezujici podminky:
> - pokud by se tohle delalo zmenou $dbh nebo databazove session, musi to byt
> v ramci session docasna zmena - jen pro tuhle jednu funkci.
> Muze to byt i databazove specificka vec (pro Oracle nebo DBD::Oracle).
> - kod neni uplne prehledny, takze ani ukol "najdi vsechna volani $dbh->neco
> a necim je obal" neni uplne trivialni a rad bych se mu vyhnul.
>
> Druha moznost, ktera se mi libi mene, je opravdu nechat callbacky
> XML::Parseru, aby vsechno hned kodovaly zpet do ISO.
Pokud spravne chapu zadani, tak existuje nejaky tok dat z databaze
ven, kde jako z databaze lezou data v ISO-8859-2, tak vystupni data
maji byt v ISO-8859-2 (nebo ne?), a jako dalsi vstup je tam nejake
XML (a nebo se jako to XML pouziva ten vystup z te databaze?).
Je-li zakladni datoby tok v ISO-8859-2, tak by mi prislo asi nejlepsi
donutit i ten XML::Parser, aby vracel data v tomto kodovani.
Samozrejme, pokud bys chtel neco jako local
$dbh->{a_nyni_chci_cist_data_v_utf_8}, dalo by se to udelat pretizenim
DBI a volanim nejakeho Encode na vystupnich retezcich.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
Only self-confident people can be simple.
Další informace o konferenci Perl