libidn-idna.html   [plain text]


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>idna</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.71.0">
<link rel="start" href="index.html" title="GNU Libidn API Reference Manual">
<link rel="up" href="ch01.html" title="GNU Libidn API Reference Manual">
<link rel="prev" href="ch01.html" title="GNU Libidn API Reference Manual">
<link rel="next" href="libidn-pr29.html" title="pr29">
<meta name="generator" content="GTK-Doc V1.7 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="ch01.html" title="GNU Libidn API Reference Manual">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GNU Libidn API Reference Manual</th>
<td><a accesskey="n" href="libidn-pr29.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2575545" class="shortcut">Top</a>
                  &#160;|&#160;
                  <a href="#id2566827" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="libidn-idna"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id2575545"></a><span class="refentrytitle">idna</span>
</h2>
<p>idna</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">



enum        <a href="libidn-idna.html#Idna-rc">Idna_rc</a>;
enum        <a href="libidn-idna.html#Idna-flags">Idna_flags</a>;
#define     <a href="libidn-idna.html#IDNA-ACE-PREFIX:CAPS">IDNA_ACE_PREFIX</a>
const char* <a href="libidn-idna.html#idna-strerror">idna_strerror</a>                   (<a href="libidn-idna.html#Idna-rc">Idna_rc</a> rc);
int         <a href="libidn-idna.html#idna-to-ascii-4i">idna_to_ascii_4i</a>                (const uint32_t *in,
                                             size_t inlen,
                                             char *out,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-44i">idna_to_unicode_44i</a>             (const uint32_t *in,
                                             size_t inlen,
                                             uint32_t *out,
                                             size_t *outlen,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-ascii-4z">idna_to_ascii_4z</a>                (const uint32_t *input,
                                             char **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-ascii-8z">idna_to_ascii_8z</a>                (const char *input,
                                             char **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-ascii-lz">idna_to_ascii_lz</a>                (const char *input,
                                             char **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-4z4z">idna_to_unicode_4z4z</a>            (const uint32_t *input,
                                             uint32_t **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-8z4z">idna_to_unicode_8z4z</a>            (const char *input,
                                             uint32_t **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-8z8z">idna_to_unicode_8z8z</a>            (const char *input,
                                             char **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-8zlz">idna_to_unicode_8zlz</a>            (const char *input,
                                             char **output,
                                             int flags);
int         <a href="libidn-idna.html#idna-to-unicode-lzlz">idna_to_unicode_lzlz</a>            (const char *input,
                                             char **output,
                                             int flags);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2566827"></a><h2>Description</h2>
<p>

</p>
</div>
<div class="refsect1" lang="en">
<a name="id2566843"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2566854"></a><h3>
<a name="Idna-rc"></a>enum Idna_rc</h3>
<a class="indexterm" name="id2566866"></a><pre class="programlisting">  typedef enum
  {
    IDNA_SUCCESS = 0,
    IDNA_STRINGPREP_ERROR = 1,
    IDNA_PUNYCODE_ERROR = 2,
    IDNA_CONTAINS_NON_LDH = 3,
    /* Workaround typo in earlier versions. */
    IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH,
    IDNA_CONTAINS_MINUS = 4,
    IDNA_INVALID_LENGTH = 5,
    IDNA_NO_ACE_PREFIX = 6,
    IDNA_ROUNDTRIP_VERIFY_ERROR = 7,
    IDNA_CONTAINS_ACE_PREFIX = 8,
    IDNA_ICONV_ERROR = 9,
    /* Internal errors. */
    IDNA_MALLOC_ERROR = 201,
    IDNA_DLOPEN_ERROR = 202
  } Idna_rc;
</pre>
<p>
Enumerated return codes of <a href="libidn-idna.html#idna-to-ascii-4i"><code class="function">idna_to_ascii_4i()</code></a>,
<a href="libidn-idna.html#idna-to-unicode-44i"><code class="function">idna_to_unicode_44i()</code></a> functions (and functions derived from those
functions).  The value 0 is guaranteed to always correspond to
success.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><a name="IDNA-SUCCESS:CAPS"></a><code class="literal">IDNA_SUCCESS</code></span></td>
<td> Successful operation.  This value is guaranteed to
  always be zero, the remaining ones are only guaranteed to hold
  non-zero values, for logical comparison purposes.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-STRINGPREP-ERROR:CAPS"></a><code class="literal">IDNA_STRINGPREP_ERROR</code></span></td>
<td>  Error during string preparation.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-PUNYCODE-ERROR:CAPS"></a><code class="literal">IDNA_PUNYCODE_ERROR</code></span></td>
<td> Error during punycode operation.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-CONTAINS-NON-LDH:CAPS"></a><code class="literal">IDNA_CONTAINS_NON_LDH</code></span></td>
<td> For IDNA_USE_STD3_ASCII_RULES, indicate that
  the string contains non-LDH ASCII characters.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-CONTAINS-LDH:CAPS"></a><code class="literal">IDNA_CONTAINS_LDH</code></span></td>
<td>
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-CONTAINS-MINUS:CAPS"></a><code class="literal">IDNA_CONTAINS_MINUS</code></span></td>
<td> For IDNA_USE_STD3_ASCII_RULES, indicate that
  the string contains a leading or trailing hyphen-minus (U+002D).
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-INVALID-LENGTH:CAPS"></a><code class="literal">IDNA_INVALID_LENGTH</code></span></td>
<td> The final output string is not within the
  (inclusive) range 1 to 63 characters.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-NO-ACE-PREFIX:CAPS"></a><code class="literal">IDNA_NO_ACE_PREFIX</code></span></td>
<td> The string does not contain the ACE prefix
  (for ToUnicode).
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-ROUNDTRIP-VERIFY-ERROR:CAPS"></a><code class="literal">IDNA_ROUNDTRIP_VERIFY_ERROR</code></span></td>
<td> The ToASCII operation on output
  string does not equal the input.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-CONTAINS-ACE-PREFIX:CAPS"></a><code class="literal">IDNA_CONTAINS_ACE_PREFIX</code></span></td>
<td> The input contains the ACE prefix (for
  ToASCII).
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-ICONV-ERROR:CAPS"></a><code class="literal">IDNA_ICONV_ERROR</code></span></td>
<td> Could not convert string in locale encoding.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-MALLOC-ERROR:CAPS"></a><code class="literal">IDNA_MALLOC_ERROR</code></span></td>
<td> Could not allocate buffer (this is typically a
  fatal error).
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-DLOPEN-ERROR:CAPS"></a><code class="literal">IDNA_DLOPEN_ERROR</code></span></td>
<td> Could not dlopen the libcidn DSO (only used
  internally in libc).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2589559"></a><h3>
<a name="Idna-flags"></a>enum Idna_flags</h3>
<a class="indexterm" name="id2506573"></a><pre class="programlisting">  typedef enum
  {
    IDNA_ALLOW_UNASSIGNED = 0x0001,
    IDNA_USE_STD3_ASCII_RULES = 0x0002
  } Idna_flags;
</pre>
<p>
Flags to pass to <a href="libidn-idna.html#idna-to-ascii-4i"><code class="function">idna_to_ascii_4i()</code></a>, <a href="libidn-idna.html#idna-to-unicode-44i"><code class="function">idna_to_unicode_44i()</code></a> etc.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><a name="IDNA-ALLOW-UNASSIGNED:CAPS"></a><code class="literal">IDNA_ALLOW_UNASSIGNED</code></span></td>
<td> Don't reject strings containing unassigned
  Unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><a name="IDNA-USE-STD3-ASCII-RULES:CAPS"></a><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></span></td>
<td> Validate strings according to STD3
  rules (i.e., normal host name rules).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2506662"></a><h3>
<a name="IDNA-ACE-PREFIX:CAPS"></a>IDNA_ACE_PREFIX</h3>
<a class="indexterm" name="id2506673"></a><pre class="programlisting">#  define IDNA_ACE_PREFIX "xn--"
</pre>
<p>
The IANA allocated prefix to use for IDNA. "xn--"</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2506693"></a><h3>
<a name="idna-strerror"></a>idna_strerror ()</h3>
<a class="indexterm" name="id2506705"></a><pre class="programlisting">const char* idna_strerror                   (<a href="libidn-idna.html#Idna-rc">Idna_rc</a> rc);</pre>
<p>
Convert a return code integer to a text string.  This string can be
used to output a diagnostic message to the user.
</p>
<p>
IDNA_SUCCESS: Successful operation.  This value is guaranteed to
  always be zero, the remaining ones are only guaranteed to hold
  non-zero values, for logical comparison purposes.
IDNA_STRINGPREP_ERROR:  Error during string preparation.
IDNA_PUNYCODE_ERROR: Error during punycode operation.
IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that
  the string contains non-LDH ASCII characters.
IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that
  the string contains a leading or trailing hyphen-minus (U+002D).
IDNA_INVALID_LENGTH: The final output string is not within the
  (inclusive) range 1 to 63 characters.
IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix
  (for ToUnicode).
IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output
  string does not equal the input.
IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for
  ToASCII).
IDNA_ICONV_ERROR: Could not convert string in locale encoding.
IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a
  fatal error).
IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used
  internally in libc).</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>rc</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-rc"><span class="type">Idna_rc</span></a> return code.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns a pointer to a statically allocated string
containing a description of the error with the return code <em class="parameter"><code>rc</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2506805"></a><h3>
<a name="idna-to-ascii-4i"></a>idna_to_ascii_4i ()</h3>
<a class="indexterm" name="id2506818"></a><pre class="programlisting">int         idna_to_ascii_4i                (const uint32_t *in,
                                             size_t inlen,
                                             char *out,
                                             int flags);</pre>
<p>
The ToASCII operation takes a sequence of Unicode code points that make
up one label and transforms it into a sequence of code points in the
ASCII range (0..7F). If ToASCII succeeds, the original sequence and the
resulting sequence are equivalent labels.
</p>
<p>
It is important to note that the ToASCII operation can fail. ToASCII
fails if any step of it fails. If any step of the ToASCII operation
fails on any label in a domain name, that domain name MUST NOT be used
as an internationalized domain name. The method for deadling with this
failure is application-specific.
</p>
<p>
The inputs to ToASCII are a sequence of code points, the AllowUnassigned
flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a
sequence of ASCII code points or a failure condition.
</p>
<p>
ToASCII never alters a sequence of code points that are all in the ASCII
range to begin with (although it could fail). Applying the ToASCII
operation multiple times has exactly the same effect as applying it just
once.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>in</code></em>&#160;:</span></td>
<td> input array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>inlen</code></em>&#160;:</span></td>
<td> length of input array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>out</code></em>&#160;:</span></td>
<td> output zero terminated string that must have room for at
      least 63 characters plus the terminating zero.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns 0 on success, or an <a href="libidn-idna.html#Idna-rc"><span class="type">Idna_rc</span></a> error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2591341"></a><h3>
<a name="idna-to-unicode-44i"></a>idna_to_unicode_44i ()</h3>
<a class="indexterm" name="id2591351"></a><pre class="programlisting">int         idna_to_unicode_44i             (const uint32_t *in,
                                             size_t inlen,
                                             uint32_t *out,
                                             size_t *outlen,
                                             int flags);</pre>
<p>
The ToUnicode operation takes a sequence of Unicode code points
that make up one label and returns a sequence of Unicode code
points. If the input sequence is a label in ACE form, then the
result is an equivalent internationalized label that is not in ACE
form, otherwise the original sequence is returned unaltered.
</p>
<p>
ToUnicode never fails. If any step fails, then the original input
sequence is returned immediately in that step.
</p>
<p>
The Punycode decoder can never output more code points than it
inputs, but Nameprep can, and therefore ToUnicode can.  Note that
the number of octets needed to represent a sequence of code points
depends on the particular character encoding used.
</p>
<p>
The inputs to ToUnicode are a sequence of code points, the
AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of
ToUnicode is always a sequence of Unicode code points.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>in</code></em>&#160;:</span></td>
<td> input array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>inlen</code></em>&#160;:</span></td>
<td> length of input array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>out</code></em>&#160;:</span></td>
<td> output array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>outlen</code></em>&#160;:</span></td>
<td> on input, maximum size of output array with unicode code points,
         on exit, actual size of output array with unicode code points.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#Idna-rc"><span class="type">Idna_rc</span></a> error condition, but it must only be
  used for debugging purposes.  The output buffer is always
  guaranteed to contain the correct data according to the
  specification (sans malloc induced errors).  NB!  This means that
  you normally ignore the return code from this function, as
  checking it means breaking the standard.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2591543"></a><h3>
<a name="idna-to-ascii-4z"></a>idna_to_ascii_4z ()</h3>
<a class="indexterm" name="id2591553"></a><pre class="programlisting">int         idna_to_ascii_4z                (const uint32_t *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert UCS-4 domain name to ASCII string.  The domain name may
contain several labels, separated by dots.  The output buffer must
be deallocated by the caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero terminated input Unicode string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2591681"></a><h3>
<a name="idna-to-ascii-8z"></a>idna_to_ascii_8z ()</h3>
<a class="indexterm" name="id2591691"></a><pre class="programlisting">int         idna_to_ascii_8z                (const char *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert UTF-8 domain name to ASCII string.  The domain name may
contain several labels, separated by dots.  The output buffer must
be deallocated by the caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero terminated input UTF-8 string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2591819"></a><h3>
<a name="idna-to-ascii-lz"></a>idna_to_ascii_lz ()</h3>
<a class="indexterm" name="id2591830"></a><pre class="programlisting">int         idna_to_ascii_lz                (const char *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert domain name in the locale's encoding to ASCII string.  The
domain name may contain several labels, separated by dots.  The
output buffer must be deallocated by the caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero terminated input string encoded in the current locale's
  character set.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2591959"></a><h3>
<a name="idna-to-unicode-4z4z"></a>idna_to_unicode_4z4z ()</h3>
<a class="indexterm" name="id2591969"></a><pre class="programlisting">int         idna_to_unicode_4z4z            (const uint32_t *input,
                                             uint32_t **output,
                                             int flags);</pre>
<p>
Convert possibly ACE encoded domain name in UCS-4 format into a
UCS-4 string.  The domain name may contain several labels,
separated by dots.  The output buffer must be deallocated by the
caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero-terminated Unicode string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output Unicode string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2592098"></a><h3>
<a name="idna-to-unicode-8z4z"></a>idna_to_unicode_8z4z ()</h3>
<a class="indexterm" name="id2592108"></a><pre class="programlisting">int         idna_to_unicode_8z4z            (const char *input,
                                             uint32_t **output,
                                             int flags);</pre>
<p>
Convert possibly ACE encoded domain name in UTF-8 format into a
UCS-4 string.  The domain name may contain several labels,
separated by dots.  The output buffer must be deallocated by the
caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero-terminated UTF-8 string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output Unicode string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2592237"></a><h3>
<a name="idna-to-unicode-8z8z"></a>idna_to_unicode_8z8z ()</h3>
<a class="indexterm" name="id2592248"></a><pre class="programlisting">int         idna_to_unicode_8z8z            (const char *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert possibly ACE encoded domain name in UTF-8 format into a
UTF-8 string.  The domain name may contain several labels,
separated by dots.  The output buffer must be deallocated by the
caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero-terminated UTF-8 string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output UTF-8 string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2592376"></a><h3>
<a name="idna-to-unicode-8zlz"></a>idna_to_unicode_8zlz ()</h3>
<a class="indexterm" name="id2592387"></a><pre class="programlisting">int         idna_to_unicode_8zlz            (const char *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert possibly ACE encoded domain name in UTF-8 format into a
string encoded in the current locale's character set.  The domain
name may contain several labels, separated by dots.  The output
buffer must be deallocated by the caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero-terminated UTF-8 string.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output string encoded in the
  current locale's character set.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2592517"></a><h3>
<a name="idna-to-unicode-lzlz"></a>idna_to_unicode_lzlz ()</h3>
<a class="indexterm" name="id2592527"></a><pre class="programlisting">int         idna_to_unicode_lzlz            (const char *input,
                                             char **output,
                                             int flags);</pre>
<p>
Convert possibly ACE encoded domain name in the locale's character
set into a string encoded in the current locale's character set.
The domain name may contain several labels, separated by dots.  The
output buffer must be deallocated by the caller.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>input</code></em>&#160;:</span></td>
<td> zero-terminated string encoded in the current locale's
  character set.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>output</code></em>&#160;:</span></td>
<td> pointer to newly allocated output string encoded in the
  current locale's character set.
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> an <a href="libidn-idna.html#Idna-flags"><span class="type">Idna_flags</span></a> value, e.g., <a href="libidn-idna.html#IDNA-ALLOW-UNASSIGNED:CAPS"><code class="literal">IDNA_ALLOW_UNASSIGNED</code></a> or
  <a href="libidn-idna.html#IDNA-USE-STD3-ASCII-RULES:CAPS"><code class="literal">IDNA_USE_STD3_ASCII_RULES</code></a>.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Returns <a href="libidn-idna.html#IDNA-SUCCESS:CAPS"><code class="literal">IDNA_SUCCESS</code></a> on success, or error code.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</body>
</html>