Ed X: Zeichencodierung und Übergabewert

Hallo an alle,

mein Problem ist etwas vielschichtiger, also fange ich ganz lansam an.

Ich möchte für eine Community einen Formmailer bauen, so eher die Luxusvariante, mit Fileversand, HTML-Mail(OPTION!!!) usw.

Ein wichtiger Punkt ist, dass ich mit recipienten der Form:

Hans Schnullerbacke schnullerbacke@wasweissich.de arbeiten möchte.

Dabei bin ich über folgendes gestolpert. Wenn Schnullerbäckchen nun Schn-ü-llerbacke heißen würde, müsste der recipient so aussehen:

=?iso-8859-1?Q?Hans Schn=FCllerbacke?= <....@....>

aber eben nur wenn. Ich kann auch alles encodieren, aber ich kann auch mit Kanonen auf Spatzen schiessen....

Frage 1:
wie heisst der regEx für alles mit ASCII-wert > 127? Mit /[\x80..\xFF]/ bin ich gescheitert.

2. Problem

Wenn Netscape-User statt Western Latin-1 UTF 8 eingestellt haben, senden Sie ein Zeichen, dass ich überhaupt nicht zu greifen bekomme. Ich kann es nicht mit /ü/ oder /\xE4/ herausfiltern, und bei der Darstellung bekomme ich nur ein Fragezeichen.

Frage 2:
Kann man das abfangen?

Danke für's lesen und das nachdenken.

Bye Ed X

  1. Moin,

    Hans Schnullerbacke schnullerbacke@wasweissich.de arbeiten möchte.

    Dabei bin ich über folgendes gestolpert. Wenn Schnullerbäckchen nun Schn-ü-llerbacke heißen würde, müsste der recipient so aussehen:
    =?iso-8859-1?Q?Hans Schn=FCllerbacke?= <....@....>

    guck dir mal MIME::Words an, das sollte dir weiterhelfen.

    Frage 1:
    ASCII-wert > 127? Mit /[\x80..\xFF]/ bin ich gescheitert.

    ^^ das muss ein - sein

    Wenn Netscape-User statt Western Latin-1 UTF 8 eingestellt haben, senden Sie ein Zeichen, dass ich überhaupt nicht zu greifen bekomme. Ich kann es nicht mit /ü/ oder /\xE4/ herausfiltern, und bei der Darstellung bekomme ich nur ein Fragezeichen.

    Frage 2:
    Kann man das abfangen?

    das Forum hier tut es (und raet dabei ein bisschen).
    aber UTF-8 wird richtig erkannt (tatsaechlich arbeitet es intern nur mit UTF-8, CGI-Parameter werden direkt nach dem Eintreffen dahingemappt, sofern es eine 8-bit-Codierung ist).

    <input type="hidden" name="qchar" value="&#255;»» ">
                                             ^^^^^^

    anhand dieses Zeichens wird erkannt, ob UTF-8 verschickt wurde oder sonstwas. Es ist keine sichere Erkennung (sowas wie Windows-1250 oder ISO-8859-2 etc. wird nicht erkannt - Pech)
    (die Idee ist nicht besonders optimal, aber bis heute ist mir nix besseres eingefallen ;/)

    evtl. helfen dir folgende Links:

    http://www.linux-magazin.de/ausgabe/2000/09/Perl/perl.html (Achtung die spzielle tr-Syntax funktioniert *nur* (!) mit Perl 5.6.0)
    http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/selfforum/selfforum-cgi/shared/Encode/Plain.pm?only_with_tag=HEAD ;-)
    http://search.cpan.org (Suche nach 'Unicode::')

    Viele Gruesse,

    n.d.p.

    1. Moin,

      guck dir mal MIME::Words an, das sollte dir weiterhelfen.

      habe ich schon mit MIME:QuotedPrint gelöst. Wer keine Arbeit hat macht sich halt welche <g>

      Es ist keine sichere Erkennung (sowas wie Windows-1250 oder ISO-8859-2 etc. wird nicht erkannt - Pech)
      (die Idee ist nicht besonders optimal, aber bis heute ist mir nix besseres eingefallen ;/)

      Wenn mir was einfällt, wirst Du es erfahren.

      Danke und di Links waren Klasse.

      Bye Ed X