A CHICKEN Scheme implementation of RFC 3492: "Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)"
(use punycode)
(punycode-encode "Bücher")
;; => "Bcher-kva"
(punycode-decode "Bcher-kva")
;; => "Bücher"
(domain->ascii "www.bücher.de")
;; => "www.xn--bcher-kva.de"
(domain->unicode "www.xn--bcher-kva.de")
;; => "www.bücher.de"This implementation does not support producing mixed-case annotations when encoding (which is not required by the RFC).