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;