APM: dotaz :: XML

Jenda Krynicky Jenda at Krynicky.cz
Fri Jan 30 07:40:09 CST 2004


From: "M. Remis" <jms at ok.cz>
> v prost edí Win pou ívám modul XML::Simple pro  tení jednoduch ch XML
> soubor , které jsou ulo eny v kódování CP1250, tzn. ka d  soubor za
> íná deklarací
> 
> <?xml version="1.0" encoding="windows-1250"?>
> 
> data, tj.  et zce, které modul 'vrací' jsou v ak (pravd podobn ) v
> jiném kódování (asi e UTF-8); pot eboval bych 'cestou nejmen ího
> odporu' zajistit, abych data/ et zce 'dostal' v tom/stejném kódování,
> v jakém byla zapsána (tzn. ani  bych je musel explicitn  p evád t) ???
>  e ením by mo ná bylo upravit tabulku WINDOWS-1250.ENC (tj. tak, aby
> ani znaky z horní poloviny tabulky nebyly p ekódovávány) - nevíte n
> kdo o 'elegantn j ím'  e ení ...

Jo to by se mi taky libilo. Ale nejde to. Pani puristi jsou toho 
nazoru ze vsechno musi byt cunikode.

Takze neexistuje jina moznost, nez si to vsechno zase pekne 
prekonvertovat zpatky. Rekl bych ze asi nejjednodussi bude splodit 
funkci ktera si projde tu strukturu vracenou XML::Simplem a 
prekonverti veskery obsah.

Neco jako:

use Encode;
sub deUTFstruct {
	if (!ref $_[0]) {
		$_[0] = encode("cp1250", $_[0]);

	} elsif (ref $_[0] eq 'ARRAY') {
		foreach (@{$_[0]}) {
			deUTFstruct( $_)
		}
	} elsif (ref $_[0] eq 'HASH') {
		foreach (values %{$_[0]}) {
			deUTFstruct( $_)
		}
	}
}

Jenda
===== Jenda at Krynicky.cz === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
	-- Terry Pratchett in Sourcery

---------------------------------------------------------------------
To unsubscribe send a mail to majordomo at hfb.pm.org
with command "unsubscribe prague-pm" in the message body.




More information about the Prague-pm mailing list