Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
punycode_encode(3)		    libidn		    punycode_encode(3)

       punycode_encode - API function

       #include	<punycode.h>

       int  punycode_encode(size_t input_length, const punycode_uint []	input,
       const unsigned char [] case_flags, size_t * output_length, char [] out-

       size_t input_length
		   The	number of code points in the  input array and the num-
		   ber of flags	in the	case_flags 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  NULL  pointer  or	an array of boolean values parallel to
		   the	input array.  Nonzero (true,  flagged)	suggests  that
		   the	corresponding Unicode character	be forced to uppercase
		   after being decoded (if possible),  and  zero  (false,  un-
		   flagged) suggests that it be	forced to lowercase (if	possi-
		   ble).  ASCII	code points (0..7F) are	encoded	literally, ex-
		   cept	 that  ASCII letters are forced	to uppercase or	lower-
		   case	 according  to	the  corresponding  case  flags.    If
		   case_flags is a NULL	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  input con-
		   tains zeros.	 (Of course the	caller can leave  room	for  a
		   terminator and add one if needed.)

       Converts	a sequence of code points (presumed to be Unicode code points)
       to Punycode.

       Return value: The return	value can be any of the	Punycode_status	values
       defined above except PUNYCODE_BAD_INPUT.	 If not	PUNYCODE_SUCCESS, then
       output_size and	output might contain garbage.

       Report bugs to <>.
       General guidelines for reporting	bugs:
       GNU Libidn home page:

       Copyright (C) 2002-2016 Simon Josefsson.
       Copying and distribution	of this	file, with  or	without	 modification,
       are  permitted in any medium without royalty provided the copyright no-
       tice and	this notice are	preserved.

       The full	documentation for libidn is maintained as  a  Texinfo  manual.
       If  the	info  and libidn programs are properly installed at your site,
       the command

	      info libidn

       should give you access to the complete manual.  As an  alternative  you
       may obtain the manual from:

libidn				     1.34		    punycode_encode(3)


Want to link to this manual page? Use this URL:

home | help