Zeichencodierung und Übergabewert
Ed X
- perl
0 n.d. parker0 Ed X
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
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="ÿ»» ">
^^^^^^
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.
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