Jörg Wittemeier: Formularedaten II

Hi !!

Noch ein Problem mit meinen Formulardaten.
Das Script bearbeitet die Eingabe wie folgt:

$value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s/<!--(.|\n)*-->//g;

Leider werden bestimmte Zeichen wie "ß" ode "ü"
restlos geschluckt.
Was muß ich ändern??
Was darf ich ändern??

Gruß
Jörg

  1. Hi !!

    Noch ein Problem mit meinen Formulardaten.
    Das Script bearbeitet die Eingabe wie folgt:

    »»    $value =~ tr/+/ /;
    »»    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    »»    $value =~ s/<!--(.|\n)*-->//g;

    Leider werden bestimmte Zeichen wie "ß" ode "ü"
    restlos geschluckt.
    Was muß ich ändern??
    Was darf ich ändern??

    Ich denke, du willst ein Programm schreiben, daß daten von einem Formular ausliest. Versuch doch mal CGI.pm, damit geht das ganz einfach. Gibt es auf http://www.perl.com

    1. Hallo !!

      Ich denke, du willst ein Programm schreiben, daß daten von einem Formular ausliest. Versuch doch mal CGI.pm, damit geht das ganz einfach. Gibt es auf http://www.perl.com

      Habe schon selbst eine Lösung gefunden.

      $buffer =~s/%DF/ß/g;
      $buffer =~s/%3A/:/g;
      $buffer =~s/%FC/ü/g;
      $buffer =~s/%E4/ä/g;
      $buffer =~s/%F6/ö/g;
      $buffer =~s/%D6/Ü/g;
      $buffer =~s/%DC/Ä/g;
      $buffer =~s/%C4/Ö/g;

      Trotzdem Danke !!
      Jörg

      1. Hallo Jörg!

        Habe schon selbst eine Lösung gefunden.

        $buffer =~s/%DF/ß/g;
        $buffer =~s/%3A/:/g;
        $buffer =~s/%FC/ü/g;
        $buffer =~s/%E4/ä/g;
        $buffer =~s/%F6/ö/g;
        $buffer =~s/%D6/Ü/g;
        $buffer =~s/%DC/Ä/g;
        $buffer =~s/%C4/Ö/g;

        Hast Du Dir schon 'mal überlegt, warum Du diesen Extra-Aufwand betreiben mußt? Wieso zum Beispiel ist ein 'ß' %DF und nicht %93? Der Grund ist sicherlich bei unterschiedlichen Zeichentabellen zu suchen. Kann man sich aber auch sicher sein, daß jeder Rechner zum versenden der Daten die gleiche Code-Tabelle nutzt?
        Die hier gelieferten Codes entsprechen zumindest der ISO-Tabelle latin-1 (iso-8559-1). Wenn denn der Browser entsprechend eingestellt ist, oder die HTML-Seite eine entsprechende Code-Tabelle angibt, wird es wohl kaum Probleme geben.
        Im Übrigen könntest Du Dein Script um ein Uni-Code Modul (z.B. Unicode::Map8) erweitern, welches die Fehlübersetzung Deiner ersten Variante korrigiert. Hier kannst Du dann auch ohne Probleme den Zielzeichensatz ändern ...

        Jörk