chickadee » punycode

punycode

Description

RFC 3492 Punycode implementation for CHICKEN Scheme. Encodes internationalized domain names in the ASCII subset supported by DNS. Useful if you want to display unicode domains in your user interface or accept unicode domains as input.

API

(punycode-encode str) procedure

Converts a unicode string to Punycode ASCII.

(punycode-decode str) procedure

Converts a Punycode ASCII string to unicode.

(domain->ascii str) procedure

Converts a internationalized domain name to an ASCII representation (if the domain is already ASCII-only it is returned unmodified).

(domain->unicode str) procedure

Converts a Punycode ASCII domain name to a unicode string (if the domain is already unicode it is returned unmodified).

Example

(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"

Source code / Issues

https://github.com/caolan/chicken-punycode

Contents »