Advertisement
Guest User

Muunna MML:n merkistökoodaus UTF-8:ksi

a guest
May 5th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.54 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use warnings;
  4. use strict;
  5.  
  6. use Encode;
  7. use charnames ':full';
  8.  
  9. binmode(STDOUT, ":utf8");
  10.  
  11. my $sep = ";";
  12.  
  13. # hupsista vaan, automaattinen koodauksen käsittely lähes aina
  14. open (my $MML, '<:encoding(ISO-8859-10)', $ARGV[0]) or die "ei voi avata: $ARGV[0]\n$!";
  15.  
  16. while(<$MML>) {
  17.   chomp;
  18.   my @items = split /$sep/;
  19.   # testaa koltansaamen varalta
  20.   if($items[1] != 5) {
  21.     print;
  22.     print "\n";
  23.   } else {
  24.     # koltansaamen käsittely
  25.  
  26.     my $koltta = $_;
  27.     $koltta =~ s|\N{LATIN CAPITAL LETTER E WITH OGONEK}
  28.         |\N{LATIN CAPITAL LETTER G WITH STROKE}|gx;
  29.     $koltta =~ s|\N{LATIN SMALL LETTER E WITH OGONEK}
  30.         |\N{LATIN SMALL LETTER G WITH STROKE}|gx;
  31.     $koltta =~ s|\N{LATIN CAPITAL LETTER E WITH DOT ABOVE}
  32.         |\N{LATIN CAPITAL LETTER K WITH CARON}|gx;
  33.     $koltta =~ s|\N{LATIN SMALL LETTER E WITH DOT ABOVE}
  34.         |\N{LATIN SMALL LETTER K WITH CARON}|gx;
  35.     $koltta =~ s|\N{LATIN CAPITAL LETTER O WITH MACRON}
  36.         |\N{LATIN CAPITAL LETTER EZH}|gx;
  37.     $koltta =~ s|\N{LATIN SMALL LETTER O WITH MACRON}
  38.         |\N{LATIN SMALL LETTER EZH}|gx;
  39.     $koltta =~ s|\N{LATIN CAPITAL LETTER O WITH ACUTE}
  40.         |\N{LATIN CAPITAL LETTER EZH WITH CARON}|gx;
  41.     $koltta =~ s|\N{LATIN SMALL LETTER O WITH ACUTE}
  42.         |\N{LATIN SMALL LETTER EZH WITH CARON}|gx;
  43.     $koltta =~ s|\N{LATIN CAPITAL LETTER E WITH DIAERESIS}
  44.         |\N{LATIN CAPITAL LETTER G WITH CARON}|gx;
  45.     $koltta =~ s|\N{LATIN SMALL LETTER E WITH DIAERESIS}
  46.         |\N{LATIN SMALL LETTER G WITH CARON}|gx;
  47.  
  48.     print $koltta;
  49.     print "\n";
  50.   }
  51. }
  52.  
  53. close $MML;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement