Leser: 18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Package main; my ($json); if($query->param('json')) { $json = new JSON->utf8(1)->decode($query->url_param('json')); } sub change_gal_name { my $gid = $json->{'gid'}; my $name = $json->{'newname'}; # ... }
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
Package main; require HTML::Entities; my ($json,$json_cleared); if($query->param('json')) { $json = new JSON->utf8(1)->decode($query->url_param('json')); # html entity: while (my $json_key = keys %$json) { $json_cleared->{$json_key} = HTML::Entities::encode_entities($json->{$json_key}); } } sub change_gal_name { my $gid = $json_cleared->{'gid'}; my $name = $json_cleared->{'newname'}; # ... }
Use of uninitialized value in substitution (s///) at /usr/lib/perl5/HTML/Entities.pm line 470
Guest johnnewname kann nun aber Zeichen wie öäüß usw behinhalten, welche in der Datenbank aber als ü usw gespeichert werden sollen.
Guest johnDann muss ich doch aber jedesmal vor der Ausgabe HTML::Entities drüberlaufen lassen? Ist das nicht performanter wenn man es einmal davor macht?
2009-03-17T12:04:08 StruppiGuest johnDas musst du nicht, wenn die Seite eine passende Kodierung hat.Dann muss ich doch aber jedesmal vor der Ausgabe HTML::Entities drüberlaufen lassen?
2009-03-17T12:10:27 murphyWas aber, wie du schon sagst, nichts mit der Kodierung zu tun hat, zumal escapen wenig bringen dürfte, du meinst die Konvertierung in Entities.2009-03-17T12:04:08 StruppiGuest johnDas musst du nicht, wenn die Seite eine passende Kodierung hat.Dann muss ich doch aber jedesmal vor der Ausgabe HTML::Entities drüberlaufen lassen?
Unabhängig von der Kodierung muss man bestimmte Zeichen mit Sonderbedeutungen immer escapen -- zum Beispiel '<', was den Start eines Tags anzeigt.
2009-03-17T15:44:49 Struppi[...] zumal escapen wenig bringen dürfte, du meinst die Konvertierung in Entities.
QuoteAber wir reden hier ja von JS und JS ist es egal ob da < oder < steht, [...]
2009-03-17T16:16:12 murphyund da muss, wie ich bereits sagte, auch nicht unbedingt escaped werden, du kannst in einen Textknoten ohne Probleme einen <TAG> verwenden, er wird als solcher dargestellt.In der Tat haben JavaScript-Strings andere Escapingregeln als HTML-Seiten. So wie ich den Originalbeitrag und die Reaktionen seines Schreibers verstanden habe, geht es hier aber vor allem um das Escaping von Daten um sie in HTML-Seiten einzufügen.
2009-03-17T16:32:07 StruppiWelche Sonderbedeutung hat ein 'ö'? Es muss auch escaped, sondern umgewandelt werden, wenn der Zeichensatz nicht stimmt. [...]
Quote2009-03-17T16:16:12 murphyund da muss, wie ich bereits sagte, auch nicht unbedingt escaped werden, du kannst in einen Textknoten ohne Probleme einen <TAG> verwenden, er wird als solcher dargestellt.[...] So wie ich den Originalbeitrag und die Reaktionen seines Schreibers verstanden habe, geht es hier aber vor allem um das Escaping von Daten um sie in HTML-Seiten einzufügen.