Thread Interessanter Effekt in HTML::Entities::decode_entities() (7 answers)
Opened by barney at 2023-12-19 17:50

barney
 2023-12-19 17:50
#195695 #195695
User since
2008-08-31
134 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich hab mir angeschaut was CPAN:HTML::Entities so alles macht. Verwirrt hat mich das Verhalten bei Surrogate Pairs. Surrogate Pairs findet man eigentlich nur bei UTF-16, wenn exotische Zeichen mit 2x2 Bytes kodiert werden. Anscheinen gab es aber vor Urzeiten Programme die aus einem solchen Zeichen zwei numerische HTML Entities gezaubert haben. Deshalb werden diese Fabrikationen in HTML::Entities unterstützt, obwohl das in keinem Standard spezifiziert ist.

Hier ein Beispiel:
[code]
$ cat surrogate_pair.pl
use v5.24;
use strict;
use warnings;
use utf8;
use open ':std', ':encoding(UTF-8)';

use String::Dump qw(dump_hex);
use HTML::Entities qw(decode_entities);

my $smile_surrogate = decode_entities('��');
say "$smile_surrogate via surrogate pair";
say dump_hex($smile_surrogate);

my $smile_codepoint = decode_entities('😁');
say "$smile_codepoint via regular codepoint";
say dump_hex($smile_codepoint);

$ perl surrogate_pair.pl

View full thread Interessanter Effekt in HTML::Entities::decode_entities()