punycode_encode(3) libidn punycode_encode(3) NNAAMMEE punycode_encode - API function SSYYNNOOPPSSIISS ##iinncclluuddee <> iinntt ppuunnyyccooddee__eennccooddee((ssiizzee__tt _i_n_p_u_t___l_e_n_g_t_h,, ccoonnsstt ppuunnyyccooddee__uuiinntt [[]] _i_n_p_u_t,, ccoonnsstt uunnssiiggnneedd cchhaarr [[]] _c_a_s_e___f_l_a_g_s,, ssiizzee__tt ** _o_u_t_p_u_t___l_e_n_g_t_h,, cchhaarr [[]] _o_u_t_- _p_u_t));; AARRGGUUMMEENNTTSS size_t input_length The number of code points in the _i_n_p_u_t array and the num- ber of flags in the _c_a_s_e___f_l_a_g_s array. const punycode_uint [] input An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. const unsigned char [] case_flags A NNUULLLL pointer or an array of boolean values parallel to the _i_n_p_u_t array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if pos- sible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lower- case according to the corresponding case flags. If _c_a_s_e___f_l_a_g_s is a NNUULLLL pointer then ASCII letters are left as they are, and other code points are treated as unflagged. size_t * output_length The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. char [] output An array of ASCII code points. It is *not* null-termi- nated; it will contain zeros if and only if the _i_n_p_u_t con- tains zeros. (Of course the caller can leave room for a terminator and add one if needed.) DDEESSCCRRIIPPTTIIOONN Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the PPuunnyyccooddee__ssttaattuuss values defined above except PPUUNNYYCCOODDEE__BBAADD__IINNPPUUTT. If not PPUUNNYYCCOODDEE__SSUUCCCCEESSSS, then _o_u_t_p_u_t___s_i_z_e and _o_u_t_p_u_t might contain garbage. DDEESSCCRRIIPPTTIIOONN Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the PPuunnyyccooddee__ssttaattuuss values defined above except PPUUNNYYCCOODDEE__BBAADD__IINNPPUUTT. If not PPUUNNYYCCOODDEE__SSUUCCCCEESSSS, then _o_u_t_p_u_t___s_i_z_e and _o_u_t_p_u_t might contain garbage. RREEPPOORRTTIINNGG BBUUGGSS Report bugs to . General guidelines for reporting bugs: http://www.gnu.org/gethelp/ GNU Libidn home page: http://www.gnu.org/software/libidn/ CCOOPPYYRRIIGGHHTT Copyright (C) 2002-2021 Simon Josefsson. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. SSEEEE AALLSSOO The full documentation for lliibbiiddnn is maintained as a Texinfo manual. If the iinnffoo and lliibbiiddnn programs are properly installed at your site, the command iinnffoo lliibbiiddnn should give you access to the complete manual. As an alternative you may obtain the manual from: hhttttpp::////wwwwww..ggnnuu..oorrgg//ssooffttwwaarree//lliibbiiddnn//mmaannuuaall// libidn 1.38 punycode_encode(3)