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

FreeBSD Manual Pages

  
 
  

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

NAME
     punycode_encode - API function

SYNOPSIS
     #include <punycode.h>

     int  punycode_encode(size_t  input_length,  const	punycode_uint  [] input,
     const unsigned char [] case_flags, size_t * output_length, char [] output);

ARGUMENTS
     size_t input_length
		 The number of code points in the  input array and the number 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 corre-
		 sponding Unicode character be forced to uppercase  after  being
		 decoded  (if  possible),  and	zero (false, unflagged) suggests
		 that it be forced  to	lowercase  (if	possible).   ASCII  code
		 points (0..7F) are encoded literally, except that ASCII letters
		 are  forced  to  uppercase or lowercase according to the corre-
		 sponding 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-terminated; it
		 will contain zeros if and only if the	 input	contains  zeros.
		 (Of  course  the caller can leave room for a terminator and add
		 one if needed.)

DESCRIPTION
     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 de-
     fined above except PUNYCODE_BAD_INPUT.  If not PUNYCODE_SUCCESS, then  out-
     put_size and  output might contain garbage.

DESCRIPTION
     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 de-
     fined above except PUNYCODE_BAD_INPUT.  If not PUNYCODE_SUCCESS, then  out-
     put_size and  output might contain garbage.

REPORTING BUGS
     Report bugs to <help-libidn@gnu.org>.
     General guidelines for reporting bugs: https://www.gnu.org/gethelp/
     GNU Libidn home page: https://www.gnu.org/software/libidn/

COPYRIGHT
     Copyright (C) 2002-2025 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.

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

	    info libidn

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

	    https://www.gnu.org/software/libidn/manual/

libidn				      1.43		      punycode_encode(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=punycode_encode&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help