GNU Libidn is an implementation of the Stringprep, Punycode,
and IDNA specifications defined by the IETF Internationalized
Domain Names (IDN) working group. It is used to prepare
internationalized strings (such as domain name labels,
usernames, and passwords) in order to increase the likelihood
that string input and string comparison work in ways that make
sense for typical users throughout the world. The library
contains a generic Stringprep implementation that does Unicode
3.2 NFKC normalization, mapping and prohibition of characters,
and bidirectional character handling. Profiles for iSCSI,
Kerberos 5, Nameprep, SASL, and XMPP are included. Punycode and
ASCII Compatible Encoding (ACE) via IDNA are supported.

WWW: http://www.gnu.org/software/libidn
