Frimi Dimpel: UFT-8 / UCS Konvertierung in Perl

Hallo!

Ich übergebe mit einem CGI/Perl-Skript Formulardaten, bei denen internationale Zeichensätze verwendet werden. Die Formulardaten werden anschließend gespeichert und wieder in HTML ausgegeben (z.B. als &_#_252;). Die Codierung erfolgt in Unicode. Für ein- und zweibyte-Werte habe ich ein funktionierendes Skript (das etwa bei "ü" die übergebenen Werte 195-188 in &_#_252; umwandelt), aber es scheitert bei dreibyte-Werten, die dann entstehen, wenn jemand z.B. aus Word öffnende oder schließende Anführungszeichen ins Formularfeld kopiert. Für JavaScript scheint es eine Lösung zu geben (http://selfaktuell.teamone.de/artikel/javascript/utf8b64/utf8.htm#a4). Gibt es ein ähnliche Lösung für Perl?
Lieben Dank!

Hier die Lösung, die ich bislang für die zweibyte-Werte verwende:
sub utfucs {
 $z=$text;
 $x=ord(substr($z,$i,1));
 $y=ord(substr($z,$i+1,1));

if ($x>128) {
  $ucs=($x-192)*2**6+($y-128);
  $ucs="&#".$ucs.";";
  substr($text,$i,2)=$ucs;

Nächstes Zeichen in $text in Steuerschleife; $i = Laufvariable:

$i=$i+length($ucs)-2;
 } #if ($x>128)
}

  1. Hi,

    Hier der Algorithmus: http://czyborra.com/utf/#UTF-8

    In Php umsetzen darfst Du das self ;-)

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hier der Algorithmus: http://czyborra.com/utf/#UTF-8
      In Php umsetzen darfst Du das self ;-)

      Lieben Dank!

      Aber ich bin "nur" Germanist, ich fürchte, mir ist das doch zu komplex. Falls jemand das schon in Perl umgesetzt hat, wäre das wunderbar!

      Herzlich
      Frimi

      1. Hi,

        Hier der Algorithmus: http://czyborra.com/utf/#UTF-8
        In Php umsetzen darfst Du das self ;-)
        Aber ich bin "nur" Germanist, ich fürchte, mir ist das doch zu komplex. Falls jemand das schon in Perl umgesetzt hat, wäre das wunderbar!

        Was hat der dort stehende Algorithmus mit Germanistik zu tun?

        Du wirst es doch wohl noch schaffen, diese simple Funktion auf Perl umzuschreiben...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/