A pure Erlang IDNA implementation.
1> Domain = xmerl_ucs:from_utf8("www.詹姆斯.com").
...
2> idna:to_ascii(Domain).
...
Note: to regenerate the datafile, run the following commandline:
$ ./mkdata.sh
Then recompile.
RFC3490 (IDNA)
RFC3492 (Punycode)
addressable (Ruby URI implementation)
punycode4r (Ruby punycode implementation)
UAX #15 (Unicode Normalization Forms)