hotti: utf8 und latin

Hi,

alle reden's von utf8. Ich auch :)
Beim Stöbern hab ich vor einiger Zeit mal zwei Funktionen gefunden, latin_to_utf8() und utf8_to_latin(). Hier sind Beide, sauber in ein Modul verpackt, viel Spaß damit!

  
package Convert;  
  
###########################################################################  
use strict;  
require Exporter;  
  
use vars qw(  
 @ISA  
 @EXPORT  
);  
  
@ISA = qw(Exporter);  
  
@EXPORT = qw(  
 latin_to_utf8  
 utf8_to_latin  
);  
  
###########################################################################  
# Übergeben wird eine Referenz auf den Text(string)  
sub latin_to_utf8 {  
 my $txtref = shift;  
 $$txtref =~ s{  
  ([\x80-\xFF])  
 }{  
  pack( "C2" => 0xC0|(ord($1)>>6),0x80|(ord($1)&0x3F) )  
 }exg;  
 return;  
}  
###########################################################################  
# Übergeben wird eine Referenz auf den Text(string)  
sub utf8_to_latin{  
 my $txtref = shift;  
 # ersetze alle Zeichen groeßer 8 bit durch "?":  
 $$txtref =~ s/[\xC4-\xFE][\x80-\xBF]+/\?/g;  
 # ersetze alle mit genau 8 bit durch ihr ASCII-Zeichen:  
 $$txtref =~ s/([\xC0-\xC3])([\x80-\xBF])/chr( (ord($1) & 3)*64 + (ord($2) & 63))/eg;  
 return;  
}  
###########################################################################  
1;  

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  1. Mahlzeit.

    Supi, ich frage mich nur: wofür?

    http://search.cpan.org/~dankogai/Encode-2.27/Encode.pm

    "from_to()"

    Grüße

    1. Mahlzeit.

      Supi, ich frage mich nur: wofür?

      http://search.cpan.org/~dankogai/Encode-2.27/Encode.pm

      Uff. So ein fettes Teil ;) Schlank ist das Leben...

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. Moin!

    alle reden's von utf8. Ich auch :)

    Aber nicht so besonders gut.

    Beim Stöbern hab ich vor einiger Zeit mal zwei Funktionen gefunden, latin_to_utf8() und utf8_to_latin(). Hier sind Beide, sauber in ein Modul verpackt, viel Spaß damit!

    Erster Punkt: Latin-WAS? Es gibt zehn Varianten, welche meinst du?

    Zweiter Punkt: Warum nicht http://perldoc.perl.org/utf8.html?

    - Sven Rautenberg

    1. Zweiter Punkt: Warum nicht http://perldoc.perl.org/utf8.html?

      Das Pragma hat nichts mit der Kodierung zu tun:

      utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code

      Struppi.

  3. Hallo,

    ersetze alle Zeichen groeßer 8 bit durch "?":

    Bitte was? Es gibt haufenweise in UTF-8-Kodierung zwei oder mehr Bytes belegende Zeichen, die in ISO-8859-X enthalten sind.

    Tim