Hallo!
Kann mir jemand sagen, welches das korrekte Modul ist, mit dem ich deutsche Umlaute und das ß in Punycode umwandeln kann? Ich hab es mit
Net::IDN::Encode versucht, ich bekomme es aber nicht wieder dekodiert.
Wichtig wäre IDNA2008, damit aus ß nicht ss wird.
Hier mein Test:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use strict;
use utf8;
binmode STDOUT, ":utf8";
use Net::IDN::Encode qw(:all);
use Net::IDN::Punycode qw(:all);
my @domain = (
'müller.example.net',
'müßer.example.net',
'xn--mller-kva',
'xn--mller.example.net-22b'
);
foreach (@domain) {
printf "%s toAscii=<%s>\n", $_, to_ascii($_);
printf "%s toUnicode=<%s>\n", $_, domain_to_unicode($_);
printf "%s toPunycode=<%s>\n", $_, encode_punycode($_);
printf "%s Unicode=<%s>\n", $_, to_unicode($_);
}
Leider bekomme ich auch was falsches. Bei 'müller.example.net' bekomme ich als Ergebnis 'xn--mller.example.net-22b' es sollte aber 'xn--mller-kva' herauskommen.
Kann mir jemand sagen, ob ich ein falsches Modul verwende, oder was mache ich sonst falsch?