UFT-8 / UCS Konvertierung in Perl
Frimi Dimpel
- cgi
0 MudGuard0 Frimi Dimpel0 MudGuard
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;
$i=$i+length($ucs)-2;
} #if ($x>128)
}
Hi,
Hier der Algorithmus: http://czyborra.com/utf/#UTF-8
In Php umsetzen darfst Du das self ;-)
cu,
Andreas
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
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