FreeBSD Manual Pages
idn_encodename(3) Library Functions Manual idn_encodename(3) NAME idn_encodename - encode an internationalized domain name SYNOPSIS #include <idn/api.h> idn_result_t idn_encodename(idn_action_t actions, const char *from, char *to, size_t tolen); DESCRIPTION The function idn_encodename() converts a domain name from and writes the result on to, at most tolen bytes. Note that from must be termi- nated by NUL, and tolen includes room for a NUL character. The argument actions specifies which steps in the entire encoding process should be performed. The following list shows action names cor- responding with steps of the encoding process. The function performs the steps in that order. 1. IDN_UNICODECONV Convert a domain name from local encoding (e.g. ISO-8859-1) to UTF-8. 2. IDN_MAP Perform mappings (NFC, Lowercase conversion, etc.). 3. IDN_ASCLOWER Convert ASCII uppercase letters (A..Z) to lowercase (a..z). 4. IDN_RTCONV Convert A-labels to U-labels. 5. IDN_PROHCHECK Check prohibited code points. 6. IDN_UNASCHECK Check unassigned code points. 7. IDN_NFCCHECK Check labels are in NFC. 8. IDN_PREFCHECK Check labels containing "--" in the 3rd and 4th characters. 9. IDN_HYPHCHECK Check labels beginning/ending with "-". 10. IDN_COMBCHECK Check labels beginning with a combining mark. 11. IDN_CTXJCHECK Check CONTEXTJ code points. 12a. IDN_CTXOCHECK Check CONTEXTO code points for the registration protocol. 12b. IDN_CTXOLITECHECK Check CONTEXTO code points for the lookup protocol. 13. IDN_BIDICHECK Check requirements specified in [IDNA2008-BIDI]. 14. IDN_LOCALCHECK Perform local check (optional). 15. IDN_IDNCONV Convert labels in UTF-8 to Punycode. 16. IDN_LENCHECK Check length of each label. 17. IDN_RTCHECK Perform round trip check for each label. Between the step 2 and 3, the domain name is split into labels. The step 3 through 17 are applied to each label. After the step 17, labels are joined with a separator ``.''. A value of bitwise-OR of some actions can be specified, like: r = idn_encodename(IDN_UNICODECONV | IDN_MAP, from, to, tolen); Also the following actions are provided for convenience: IDN_ENCODE_REGIST Encode a domain name with IDNA2008 registration protocol. libidnkit performs the step 1..11, 12a, 13 and 15..17. li- bidnkitlite performs the step 2..11, 12a, 13 and 15..17. IDN_ENCODE_LOOKUP Encode a domain name with IDNA2008 lookup protocol. li- bidnkit performs the step 1..8, 10, 11, 12b, 13 and 15..17. libidnkitlite performs the step 2..8, 10, 11, 12b, 13 and 15..17. Upon success, idn_encodename() returns idn_success. Otherwise, it re- turns an error code. See idn_result_tostring(3) for the complete list of error codes. EXAMPLE To get an address of an internationalized domain name written in the application's local encoding, use idn_encodename() to convert the name to the format suitable for passing to resolver functions. idn_result_t r; char ace_name[256]; struct hostent *hp; ... r = idn_encodename(IDN_ENCODE_LOOKUP, name, ace_name, sizeof(ace_name)); if (r != idn_success) { fprintf(stderr, "idn_encodename failed: %s\n", idn_result_tostring(r)); exit(1); } hp = gethostbyname(ace_name); ... SEE ALSO idnconv(1), libidnkit(3), idn_nameinit(3), idn_result_tostring(3), idn2.conf(5) Sep 21, 2012 idn_encodename(3)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=idn_encodename&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>