Thread packet für html-sonderzeichen gesucht
(2 answers)
Opened by jan99 at 2010-09-02 10:03
HI !
ich habe einmal eine pm bekommen um dem Problem der Sonderzeichen im Webbereich Herr zu werden. Leider werden nicht alle Sonderzeichen abgedeckt und darüberhinaus wäre der Zugriff auf ein Standard-Packet sicherlich sehr sinnvoll. Kann mir einer von Euch weiterhelfen ? Nachfolgend der Code auszugsweise um vielleicht besser zu verstehen was ich meine. Gruß Jan :-) Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package encode_html; use strict; use warnings; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK) ; $VERSION = '1.0' ; require Exporter ; @ISA = qw ( Exporter AutoLoader ) ; @EXPORT = qw (string2html) ; # Liste der bekannten HTML-zeichen: my %xmlchars=( '<' =>'<', '>' =>'>', "'" =>''', '"' =>'"', '&' =>'&', "\x{27}" =>''', "\x{22}" =>'"', "\x{A0}" =>' ', "\x{A1}" =>'¡', "\x{A2}" =>'¢', "\x{A3}" =>'£', "\x{A4}" =>'¤' # , .... ); my $xmlcharstring='['.join('',keys(%xmlchars)).']'; # nicht ASCII und Unbekannte zeichen Quoten sub string2html { my $str=shift; # already quoted transform to ignore $str=~s/&(#?\w+);/-!=$1=!-/gs; # replace known UTF-8 $str=~s/($xmlcharstring)/$xmlchars{$1}/gse; # quote unknown UTF-8 $str=~s/([^\x20-\x7F])/'&#' . ord($1) . ';'/gse; # transorm back already quoted $str=~s/-!=(#?\w+)=!-/&$1;/gs; return $str; } 1; perl-Greenhorn - Win7 64bit / strawberry (ehem. activeperl) - www.OpenStreetMap.de
|