> Given: unicode strings ($ustr) like: > World/EspaA±ol/Artes > World/FranA§ais/Arts > World/Russian/??N???N?N?N?N‚???? > > Problem: convert to that language's encoding. Here (for Russian unicode strings): use strict; my $rt = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя'; my $ru = ''; for ( '100411041204130414041504010416041704180419041A041B041C041D041E041F042004210 4220423042404250426042704280429042A042B042C042D042E042F04', '300431043204330434043504510436043704380439043A043B043C043D043E043F044004410 4420443044404450446044704480449044A044B044C044D044E044F04' ) { $ru .= pack('H*',$_); } for my $i (0..length($rt)-1) { $_{substr($rt,$i,1)} = substr($ru,2*$i,1).substr($ru,2*$i+1,1); } my %a = reverse %_; binmode STDIN; for (<STDIN>) { chomp; print map({exists $a{$_}?$a{$_}:$_} grep {$_ ne ''} split /(..)/),"\n"; } <!ENTITY Vadim REALLIFE "Vadim V.Konovalov, St.Petersburg, Russia"> &Vadim;