automaticke urceni kodovani

Petr Vileta petr na practisoft.cz
Úterý Červen 29 01:06:39 CEST 2004


> zkousel jsem najit nejakou utilitu na automaticke prekodovani textu a
> nebo alespon na urceni kodovani z textu. Google mi akorat predhazuje
> csacek, takze jem se prakticky nikam nedostal... :(
>
> Nemate nekdo s necim zkusenosti? Stacilo by mi koznavani CP1250,
> ISO8859-2 a MAC CZ kodovani... (ma mac netrvam, tech tolik nemam a ani
> jich v budoucnu tolik nebude).
Utilitou neposlouzim, ale ja ve svych perlovskych skriptech pouzivam
nasledujici dve rutiny pro vzajemne prekodovani.
Jmena rutin myslim hovori jasne a podle tech pismen, ktera konvertuji muzete
posoudit, v jakem kodovani text je. Pokud se v celem textu nevyskytne ani
jedno z uvedenych pismen, pak s tim nemusite delat nic :-)
--
Petr

sub isotowin
{
my $xxr = '';
for ($xxq=0; $xxq < length($_[0]); $xxq++)
   {
   my $xxx = ord(substr($_[0],$xxq,1));
   if ($xxx == 185) # s-hacek
      {
      $xxr = $xxr . chr(154);
      }
   elsif ($xxx == 187) # t-hacek
      {
      $xxr = $xxr . chr(157);
      }
   elsif ($xxx == 169) # S-hacek
      {
      $xxr = $xxr . chr(138);
      }
   elsif ($xxx == 171) # T-hacek
      {
      $xxr = $xxr . chr(141);
      }
   elsif ($xxx == 190) # z-hacek
      {
      $xxr = $xxr . chr(158);
      }
   elsif ($xxx == 174) # Z-hacek
      {
      $xxr = $xxr . chr(142);
      }
   else
      {
      $xxr = $xxr . chr($xxx);
      }
   }
return $xxr;
}

sub wintoiso
{
my $xxr = '';
for ($xxq=0; $xxq < length($_[0]); $xxq++)
   {
   my $xxx = ord(substr($_[0],$xxq,1));
   if ($xxx == 154) # s-hacek
      {
      $xxr = $xxr . chr(185);
      }
   elsif ($xxx == 157) # t-hacek
      {
      $xxr = $xxr . chr(187);
      }
   elsif ($xxx == 138) # S-hacek
      {
      $xxr = $xxr . chr(169);
      }
   elsif ($xxx == 141) # T-hacek
      {
      $xxr = $xxr . chr(171);
      }
   elsif ($xxx == 158) # z-hacek
      {
      $xxr = $xxr . chr(190);
      }
   elsif ($xxx == 142) # Z-hacek
      {
      $xxr = $xxr . chr(174);
      }
   else
      {
      $xxr = $xxr . chr($xxx);
      }
   }
return $xxr;
}



Další informace o konferenci Linux