use Unicode::Normalize qw( normalize ); use charnames qw( ); my $s = "ksi\x{0119}gowo\x{015B}\x{0107}"; for (qw(NFC NFD)) { print "$_\n"; printf("U+%04X: %s\n", $_, charnames::viacode($_)) for map ord, split //, normalize($_, $s); print("\n"); }