Ich versuche, hexadezimale Darstellungen von Unicode-Zeichen in die Zeichen zu konvertieren, die sie darstellen. Das folgende Beispiel funktioniert gut:Wie kann ich ein Unicode-Zeichen aus seinen Bytes erstellen, wenn sie in verschiedenen Variablen in Perl gespeichert sind?
#!/usr/bin/perl
use Encode qw(encode decode);
binmode(STDOUT, ':encoding(utf-8)');
my $encoded = encode('utf8', "\x{e382}\x{af}");
eval { $encoded = decode('utf8', $encoded, Encode::FB_CROAK); 1 }
or print("coaked\n");
print "$encoded\n";
Die Hexadezimalziffern sind jedoch in 3 Variablen gespeichert.
Also, wenn ich ersetzen die Codierfreigabeleitung mit diesem:
my $encoded = encode('utf8', "\x{${byte1}${byte2}}\x{${byte3}}");
wo
my $byte1 = "e3"; my $byte2 = "82"; my $byte3 = "af";
Es schlägt fehl, da es die \ x sofort und sieht das $ -Zeichen und {als Zeichen zu bewerten versucht.
Wer weiß, wie man das umgehen kann.
Danke! Das ist was ich brauchte. – Tom