xref: /aosp_15_r20/external/libxml2/doc/devhelp/libxml2-encoding.html (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker<html>
2*7c568831SAndroid Build Coastguard Worker<head>
3*7c568831SAndroid Build Coastguard Worker<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4*7c568831SAndroid Build Coastguard Worker<title>encoding: interface for the encoding conversion functions</title>
5*7c568831SAndroid Build Coastguard Worker<meta name="generator" content="Libxml2 devhelp stylesheet">
6*7c568831SAndroid Build Coastguard Worker<link rel="start" href="index.html" title="libxml2 Reference Manual">
7*7c568831SAndroid Build Coastguard Worker<link rel="up" href="general.html" title="API">
8*7c568831SAndroid Build Coastguard Worker<link rel="stylesheet" href="style.css" type="text/css">
9*7c568831SAndroid Build Coastguard Worker<link rel="chapter" href="general.html" title="API">
10*7c568831SAndroid Build Coastguard Worker</head>
11*7c568831SAndroid Build Coastguard Worker<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
12*7c568831SAndroid Build Coastguard Worker<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
13*7c568831SAndroid Build Coastguard Worker<td><a accesskey="p" href="libxml2-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
14*7c568831SAndroid Build Coastguard Worker<td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
15*7c568831SAndroid Build Coastguard Worker<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
16*7c568831SAndroid Build Coastguard Worker<td><a accesskey="n" href="libxml2-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
17*7c568831SAndroid Build Coastguard Worker<th width="100%" align="center">libxml2 Reference Manual</th>
18*7c568831SAndroid Build Coastguard Worker</tr></table>
19*7c568831SAndroid Build Coastguard Worker<h2><span class="refentrytitle">encoding</span></h2>
20*7c568831SAndroid Build Coastguard Worker<p>encoding - interface for the encoding conversion functions</p>
21*7c568831SAndroid Build Coastguard Worker<p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support.  Related specs are rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646]    UTF-8 and UTF-16 in Annexes [ISO-8859-1]   ISO Latin-1 characters codes. [UNICODE]      The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is described in Unicode Technical Report #4. [US-ASCII]     Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p>
22*7c568831SAndroid Build Coastguard Worker<p>Author(s): Daniel Veillard </p>
23*7c568831SAndroid Build Coastguard Worker<div class="refsynopsisdiv">
24*7c568831SAndroid Build Coastguard Worker<h2>Synopsis</h2>
25*7c568831SAndroid Build Coastguard Worker<pre class="synopsis">typedef enum <a href="#xmlCharEncError">xmlCharEncError</a>;
26*7c568831SAndroid Build Coastguard Workertypedef enum <a href="#xmlCharEncoding">xmlCharEncoding</a>;
27*7c568831SAndroid Build Coastguard Workertypedef struct _xmlCharEncodingHandler <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a>;
28*7c568831SAndroid Build Coastguard Workertypedef <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a href="#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>;
29*7c568831SAndroid Build Coastguard Workerint	<a href="#UTF8Toisolat1">UTF8Toisolat1</a>			(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen);
30*7c568831SAndroid Build Coastguard Workerint	<a href="#isolat1ToUTF8">isolat1ToUTF8</a>			(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen);
31*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlAddEncodingAlias">xmlAddEncodingAlias</a>		(const char * name, <br>					 const char * alias);
32*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a>		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler);
33*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlCharEncFirstLine">xmlCharEncFirstLine</a>		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
34*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlCharEncInFunc">xmlCharEncInFunc</a>		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
35*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlCharEncOutFunc">xmlCharEncOutFunc</a>		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in);
36*7c568831SAndroid Build Coastguard Workertypedef int <a href="#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a>	(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen);
37*7c568831SAndroid Build Coastguard Workertypedef int <a href="#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a>	(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen);
38*7c568831SAndroid Build Coastguard Workervoid	<a href="#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a>	(void);
39*7c568831SAndroid Build Coastguard Workervoid	<a href="#xmlCleanupEncodingAliases">xmlCleanupEncodingAliases</a>	(void);
40*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlDelEncodingAlias">xmlDelEncodingAlias</a>		(const char * alias);
41*7c568831SAndroid Build Coastguard Worker<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>	<a href="#xmlDetectCharEncoding">xmlDetectCharEncoding</a>	(const unsigned char * in, <br>					 int len);
42*7c568831SAndroid Build Coastguard Worker<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	<a href="#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a>	(const char * name);
43*7c568831SAndroid Build Coastguard Worker<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	<a href="#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a>	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
44*7c568831SAndroid Build Coastguard Workerconst char *	<a href="#xmlGetCharEncodingName">xmlGetCharEncodingName</a>	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
45*7c568831SAndroid Build Coastguard Workerconst char *	<a href="#xmlGetEncodingAlias">xmlGetEncodingAlias</a>	(const char * alias);
46*7c568831SAndroid Build Coastguard Workervoid	<a href="#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a>	(void);
47*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlLookupCharEncodingHandler">xmlLookupCharEncodingHandler</a>	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br>					 <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> ** out);
48*7c568831SAndroid Build Coastguard Worker<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	<a href="#xmlNewCharEncodingHandler">xmlNewCharEncodingHandler</a>	(const char * name, <br>							 <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br>							 <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output);
49*7c568831SAndroid Build Coastguard Workerint	<a href="#xmlOpenCharEncodingHandler">xmlOpenCharEncodingHandler</a>	(const char * name, <br>					 int output, <br>					 <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> ** out);
50*7c568831SAndroid Build Coastguard Worker<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>	<a href="#xmlParseCharEncoding">xmlParseCharEncoding</a>	(const char * name);
51*7c568831SAndroid Build Coastguard Workervoid	<a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a>	(<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler);
52*7c568831SAndroid Build Coastguard Worker</pre>
53*7c568831SAndroid Build Coastguard Worker</div>
54*7c568831SAndroid Build Coastguard Worker<div class="refsect1" lang="en"><h2>Description</h2></div>
55*7c568831SAndroid Build Coastguard Worker<div class="refsect1" lang="en">
56*7c568831SAndroid Build Coastguard Worker<h2>Details</h2>
57*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
58*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
59*7c568831SAndroid Build Coastguard Worker<h3>
60*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncError">Enum </a>xmlCharEncError</h3>
61*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">enum <a href="#xmlCharEncError">xmlCharEncError</a> {
62*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_MEMORY">XML_ENC_ERR_MEMORY</a> = -5
63*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_INTERNAL">XML_ENC_ERR_INTERNAL</a> = -4
64*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_PARTIAL">XML_ENC_ERR_PARTIAL</a> = -3
65*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_INPUT">XML_ENC_ERR_INPUT</a> = -2
66*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_SPACE">XML_ENC_ERR_SPACE</a> = -1
67*7c568831SAndroid Build Coastguard Worker    <a name="XML_ENC_ERR_SUCCESS">XML_ENC_ERR_SUCCESS</a> = 0
68*7c568831SAndroid Build Coastguard Worker};
69*7c568831SAndroid Build Coastguard Worker</pre>
70*7c568831SAndroid Build Coastguard Worker<p></p>
71*7c568831SAndroid Build Coastguard Worker</div>
72*7c568831SAndroid Build Coastguard Worker<hr>
73*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
74*7c568831SAndroid Build Coastguard Worker<h3>
75*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncoding">Enum </a>xmlCharEncoding</h3>
76*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">enum <a href="#xmlCharEncoding">xmlCharEncoding</a> {
77*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 /* No char encoding detected */
78*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 /* No char encoding detected */
79*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UTF8">XML_CHAR_ENCODING_UTF8</a> = 1 /* UTF-8 */
80*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UTF16LE">XML_CHAR_ENCODING_UTF16LE</a> = 2 /* UTF-16 little endian */
81*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UTF16BE">XML_CHAR_ENCODING_UTF16BE</a> = 3 /* UTF-16 big endian */
82*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UCS4LE">XML_CHAR_ENCODING_UCS4LE</a> = 4 /* UCS-4 little endian */
83*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UCS4BE">XML_CHAR_ENCODING_UCS4BE</a> = 5 /* UCS-4 big endian */
84*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_EBCDIC">XML_CHAR_ENCODING_EBCDIC</a> = 6 /* EBCDIC uh! */
85*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UCS4_2143">XML_CHAR_ENCODING_UCS4_2143</a> = 7 /* UCS-4 unusual ordering */
86*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UCS4_3412">XML_CHAR_ENCODING_UCS4_3412</a> = 8 /* UCS-4 unusual ordering */
87*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_UCS2">XML_CHAR_ENCODING_UCS2</a> = 9 /* UCS-2 */
88*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a> = 10 /* ISO-8859-1 ISO Latin 1 */
89*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a> = 11 /* ISO-8859-2 ISO Latin 2 */
90*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_3">XML_CHAR_ENCODING_8859_3</a> = 12 /* ISO-8859-3 */
91*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_4">XML_CHAR_ENCODING_8859_4</a> = 13 /* ISO-8859-4 */
92*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_5">XML_CHAR_ENCODING_8859_5</a> = 14 /* ISO-8859-5 */
93*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_6">XML_CHAR_ENCODING_8859_6</a> = 15 /* ISO-8859-6 */
94*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_7">XML_CHAR_ENCODING_8859_7</a> = 16 /* ISO-8859-7 */
95*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_8">XML_CHAR_ENCODING_8859_8</a> = 17 /* ISO-8859-8 */
96*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_8859_9">XML_CHAR_ENCODING_8859_9</a> = 18 /* ISO-8859-9 */
97*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a> = 19 /* ISO-2022-JP */
98*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_SHIFT_JIS">XML_CHAR_ENCODING_SHIFT_JIS</a> = 20 /* Shift_JIS */
99*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_EUC_JP">XML_CHAR_ENCODING_EUC_JP</a> = 21 /* EUC-JP */
100*7c568831SAndroid Build Coastguard Worker    <a name="XML_CHAR_ENCODING_ASCII">XML_CHAR_ENCODING_ASCII</a> = 22 /*  pure ASCII */
101*7c568831SAndroid Build Coastguard Worker};
102*7c568831SAndroid Build Coastguard Worker</pre>
103*7c568831SAndroid Build Coastguard Worker<p></p>
104*7c568831SAndroid Build Coastguard Worker</div>
105*7c568831SAndroid Build Coastguard Worker<hr>
106*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
107*7c568831SAndroid Build Coastguard Worker<h3>
108*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncodingHandler">Structure </a>xmlCharEncodingHandler</h3>
109*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">struct _xmlCharEncodingHandler {
110*7c568831SAndroid Build Coastguard Worker    char *	name
111*7c568831SAndroid Build Coastguard Worker    <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a>	input
112*7c568831SAndroid Build Coastguard Worker    <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a>	output
113*7c568831SAndroid Build Coastguard Worker    iconv_t	iconv_in
114*7c568831SAndroid Build Coastguard Worker    iconv_t	iconv_out
115*7c568831SAndroid Build Coastguard Worker    struct _uconv_t *	uconv_in
116*7c568831SAndroid Build Coastguard Worker    struct _uconv_t *	uconv_out
117*7c568831SAndroid Build Coastguard Worker} xmlCharEncodingHandler;
118*7c568831SAndroid Build Coastguard Worker</pre>
119*7c568831SAndroid Build Coastguard Worker<p></p>
120*7c568831SAndroid Build Coastguard Worker</div>
121*7c568831SAndroid Build Coastguard Worker<hr>
122*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
123*7c568831SAndroid Build Coastguard Worker<h3>
124*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncodingHandlerPtr">Typedef </a>xmlCharEncodingHandlerPtr</h3>
125*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * xmlCharEncodingHandlerPtr;
126*7c568831SAndroid Build Coastguard Worker</pre>
127*7c568831SAndroid Build Coastguard Worker<p></p>
128*7c568831SAndroid Build Coastguard Worker</div>
129*7c568831SAndroid Build Coastguard Worker<hr>
130*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
131*7c568831SAndroid Build Coastguard Worker<h3>
132*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncodingInputFunc"></a>Function type xmlCharEncodingInputFunc</h3>
133*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncodingInputFunc	(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen)<br>
134*7c568831SAndroid Build Coastguard Worker</pre>
135*7c568831SAndroid Build Coastguard Worker<p>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</p>
136*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
137*7c568831SAndroid Build Coastguard Worker<col align="left">
138*7c568831SAndroid Build Coastguard Worker<tbody>
139*7c568831SAndroid Build Coastguard Worker<tr>
140*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
141*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of bytes to store the UTF-8 result</td>
142*7c568831SAndroid Build Coastguard Worker</tr>
143*7c568831SAndroid Build Coastguard Worker<tr>
144*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>outlen</tt></i>:</span></td>
145*7c568831SAndroid Build Coastguard Worker<td>the length of @out</td>
146*7c568831SAndroid Build Coastguard Worker</tr>
147*7c568831SAndroid Build Coastguard Worker<tr>
148*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
149*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of chars in the original encoding</td>
150*7c568831SAndroid Build Coastguard Worker</tr>
151*7c568831SAndroid Build Coastguard Worker<tr>
152*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>inlen</tt></i>:</span></td>
153*7c568831SAndroid Build Coastguard Worker<td>the length of @in</td>
154*7c568831SAndroid Build Coastguard Worker</tr>
155*7c568831SAndroid Build Coastguard Worker<tr>
156*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
157*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets consumed.</td>
158*7c568831SAndroid Build Coastguard Worker</tr>
159*7c568831SAndroid Build Coastguard Worker</tbody>
160*7c568831SAndroid Build Coastguard Worker</table></div>
161*7c568831SAndroid Build Coastguard Worker</div>
162*7c568831SAndroid Build Coastguard Worker<hr>
163*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
164*7c568831SAndroid Build Coastguard Worker<h3>
165*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncodingOutputFunc"></a>Function type xmlCharEncodingOutputFunc</h3>
166*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncodingOutputFunc	(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen)<br>
167*7c568831SAndroid Build Coastguard Worker</pre>
168*7c568831SAndroid Build Coastguard Worker<p>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</p>
169*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
170*7c568831SAndroid Build Coastguard Worker<col align="left">
171*7c568831SAndroid Build Coastguard Worker<tbody>
172*7c568831SAndroid Build Coastguard Worker<tr>
173*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
174*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of bytes to store the result</td>
175*7c568831SAndroid Build Coastguard Worker</tr>
176*7c568831SAndroid Build Coastguard Worker<tr>
177*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>outlen</tt></i>:</span></td>
178*7c568831SAndroid Build Coastguard Worker<td>the length of @out</td>
179*7c568831SAndroid Build Coastguard Worker</tr>
180*7c568831SAndroid Build Coastguard Worker<tr>
181*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
182*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of UTF-8 chars</td>
183*7c568831SAndroid Build Coastguard Worker</tr>
184*7c568831SAndroid Build Coastguard Worker<tr>
185*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>inlen</tt></i>:</span></td>
186*7c568831SAndroid Build Coastguard Worker<td>the length of @in</td>
187*7c568831SAndroid Build Coastguard Worker</tr>
188*7c568831SAndroid Build Coastguard Worker<tr>
189*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
190*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.</td>
191*7c568831SAndroid Build Coastguard Worker</tr>
192*7c568831SAndroid Build Coastguard Worker</tbody>
193*7c568831SAndroid Build Coastguard Worker</table></div>
194*7c568831SAndroid Build Coastguard Worker</div>
195*7c568831SAndroid Build Coastguard Worker<hr>
196*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
197*7c568831SAndroid Build Coastguard Worker<h3>
198*7c568831SAndroid Build Coastguard Worker<a name="UTF8Toisolat1"></a>UTF8Toisolat1 ()</h3>
199*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	UTF8Toisolat1			(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen)<br>
200*7c568831SAndroid Build Coastguard Worker</pre>
201*7c568831SAndroid Build Coastguard Worker<p>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</p>
202*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
203*7c568831SAndroid Build Coastguard Worker<col align="left">
204*7c568831SAndroid Build Coastguard Worker<tbody>
205*7c568831SAndroid Build Coastguard Worker<tr>
206*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
207*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of bytes to store the result</td>
208*7c568831SAndroid Build Coastguard Worker</tr>
209*7c568831SAndroid Build Coastguard Worker<tr>
210*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>outlen</tt></i>:</span></td>
211*7c568831SAndroid Build Coastguard Worker<td>the length of @out</td>
212*7c568831SAndroid Build Coastguard Worker</tr>
213*7c568831SAndroid Build Coastguard Worker<tr>
214*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
215*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of UTF-8 chars</td>
216*7c568831SAndroid Build Coastguard Worker</tr>
217*7c568831SAndroid Build Coastguard Worker<tr>
218*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>inlen</tt></i>:</span></td>
219*7c568831SAndroid Build Coastguard Worker<td>the length of @in</td>
220*7c568831SAndroid Build Coastguard Worker</tr>
221*7c568831SAndroid Build Coastguard Worker<tr>
222*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
223*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written or an XML_ENC_ERR code. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets produced.</td>
224*7c568831SAndroid Build Coastguard Worker</tr>
225*7c568831SAndroid Build Coastguard Worker</tbody>
226*7c568831SAndroid Build Coastguard Worker</table></div>
227*7c568831SAndroid Build Coastguard Worker</div>
228*7c568831SAndroid Build Coastguard Worker<hr>
229*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
230*7c568831SAndroid Build Coastguard Worker<h3>
231*7c568831SAndroid Build Coastguard Worker<a name="isolat1ToUTF8"></a>isolat1ToUTF8 ()</h3>
232*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	isolat1ToUTF8			(unsigned char * out, <br>					 int * outlen, <br>					 const unsigned char * in, <br>					 int * inlen)<br>
233*7c568831SAndroid Build Coastguard Worker</pre>
234*7c568831SAndroid Build Coastguard Worker<p>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</p>
235*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
236*7c568831SAndroid Build Coastguard Worker<col align="left">
237*7c568831SAndroid Build Coastguard Worker<tbody>
238*7c568831SAndroid Build Coastguard Worker<tr>
239*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
240*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of bytes to store the result</td>
241*7c568831SAndroid Build Coastguard Worker</tr>
242*7c568831SAndroid Build Coastguard Worker<tr>
243*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>outlen</tt></i>:</span></td>
244*7c568831SAndroid Build Coastguard Worker<td>the length of @out</td>
245*7c568831SAndroid Build Coastguard Worker</tr>
246*7c568831SAndroid Build Coastguard Worker<tr>
247*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
248*7c568831SAndroid Build Coastguard Worker<td>a pointer to an array of ISO Latin 1 chars</td>
249*7c568831SAndroid Build Coastguard Worker</tr>
250*7c568831SAndroid Build Coastguard Worker<tr>
251*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>inlen</tt></i>:</span></td>
252*7c568831SAndroid Build Coastguard Worker<td>the length of @in</td>
253*7c568831SAndroid Build Coastguard Worker</tr>
254*7c568831SAndroid Build Coastguard Worker<tr>
255*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
256*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written or an XML_ENC_ERR code. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets produced.</td>
257*7c568831SAndroid Build Coastguard Worker</tr>
258*7c568831SAndroid Build Coastguard Worker</tbody>
259*7c568831SAndroid Build Coastguard Worker</table></div>
260*7c568831SAndroid Build Coastguard Worker</div>
261*7c568831SAndroid Build Coastguard Worker<hr>
262*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
263*7c568831SAndroid Build Coastguard Worker<h3>
264*7c568831SAndroid Build Coastguard Worker<a name="xmlAddEncodingAlias"></a>xmlAddEncodingAlias ()</h3>
265*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlAddEncodingAlias		(const char * name, <br>					 const char * alias)<br>
266*7c568831SAndroid Build Coastguard Worker</pre>
267*7c568831SAndroid Build Coastguard Worker<p>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</p>
268*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
269*7c568831SAndroid Build Coastguard Worker<col align="left">
270*7c568831SAndroid Build Coastguard Worker<tbody>
271*7c568831SAndroid Build Coastguard Worker<tr>
272*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>name</tt></i>:</span></td>
273*7c568831SAndroid Build Coastguard Worker<td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td>
274*7c568831SAndroid Build Coastguard Worker</tr>
275*7c568831SAndroid Build Coastguard Worker<tr>
276*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>alias</tt></i>:</span></td>
277*7c568831SAndroid Build Coastguard Worker<td>the alias name as parsed, in UTF-8 format (ASCII actually)</td>
278*7c568831SAndroid Build Coastguard Worker</tr>
279*7c568831SAndroid Build Coastguard Worker<tr>
280*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
281*7c568831SAndroid Build Coastguard Worker<td>0 in case of success, -1 in case of error</td>
282*7c568831SAndroid Build Coastguard Worker</tr>
283*7c568831SAndroid Build Coastguard Worker</tbody>
284*7c568831SAndroid Build Coastguard Worker</table></div>
285*7c568831SAndroid Build Coastguard Worker</div>
286*7c568831SAndroid Build Coastguard Worker<hr>
287*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
288*7c568831SAndroid Build Coastguard Worker<h3>
289*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncCloseFunc"></a>xmlCharEncCloseFunc ()</h3>
290*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncCloseFunc		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler)<br>
291*7c568831SAndroid Build Coastguard Worker</pre>
292*7c568831SAndroid Build Coastguard Worker<p>Generic front-end for encoding handler close function</p>
293*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
294*7c568831SAndroid Build Coastguard Worker<col align="left">
295*7c568831SAndroid Build Coastguard Worker<tbody>
296*7c568831SAndroid Build Coastguard Worker<tr>
297*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>handler</tt></i>:</span></td>
298*7c568831SAndroid Build Coastguard Worker<td>char encoding transformation data structure</td>
299*7c568831SAndroid Build Coastguard Worker</tr>
300*7c568831SAndroid Build Coastguard Worker<tr>
301*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
302*7c568831SAndroid Build Coastguard Worker<td>0 if success, or -1 in case of error</td>
303*7c568831SAndroid Build Coastguard Worker</tr>
304*7c568831SAndroid Build Coastguard Worker</tbody>
305*7c568831SAndroid Build Coastguard Worker</table></div>
306*7c568831SAndroid Build Coastguard Worker</div>
307*7c568831SAndroid Build Coastguard Worker<hr>
308*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
309*7c568831SAndroid Build Coastguard Worker<h3>
310*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncFirstLine"></a>xmlCharEncFirstLine ()</h3>
311*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncFirstLine		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br>
312*7c568831SAndroid Build Coastguard Worker</pre>
313*7c568831SAndroid Build Coastguard Worker<p>DEPERECATED: Don't use.</p>
314*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
315*7c568831SAndroid Build Coastguard Worker<col align="left">
316*7c568831SAndroid Build Coastguard Worker<tbody>
317*7c568831SAndroid Build Coastguard Worker<tr>
318*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>handler</tt></i>:</span></td>
319*7c568831SAndroid Build Coastguard Worker<td>char encoding transformation data structure</td>
320*7c568831SAndroid Build Coastguard Worker</tr>
321*7c568831SAndroid Build Coastguard Worker<tr>
322*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
323*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td>
324*7c568831SAndroid Build Coastguard Worker</tr>
325*7c568831SAndroid Build Coastguard Worker<tr>
326*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
327*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td>
328*7c568831SAndroid Build Coastguard Worker</tr>
329*7c568831SAndroid Build Coastguard Worker<tr>
330*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
331*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written or an XML_ENC_ERR code.</td>
332*7c568831SAndroid Build Coastguard Worker</tr>
333*7c568831SAndroid Build Coastguard Worker</tbody>
334*7c568831SAndroid Build Coastguard Worker</table></div>
335*7c568831SAndroid Build Coastguard Worker</div>
336*7c568831SAndroid Build Coastguard Worker<hr>
337*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
338*7c568831SAndroid Build Coastguard Worker<h3>
339*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncInFunc"></a>xmlCharEncInFunc ()</h3>
340*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncInFunc		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br>
341*7c568831SAndroid Build Coastguard Worker</pre>
342*7c568831SAndroid Build Coastguard Worker<p>Generic front-end for the encoding handler input function</p>
343*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
344*7c568831SAndroid Build Coastguard Worker<col align="left">
345*7c568831SAndroid Build Coastguard Worker<tbody>
346*7c568831SAndroid Build Coastguard Worker<tr>
347*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>handler</tt></i>:</span></td>
348*7c568831SAndroid Build Coastguard Worker<td>char encoding transformation data structure</td>
349*7c568831SAndroid Build Coastguard Worker</tr>
350*7c568831SAndroid Build Coastguard Worker<tr>
351*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
352*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td>
353*7c568831SAndroid Build Coastguard Worker</tr>
354*7c568831SAndroid Build Coastguard Worker<tr>
355*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
356*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td>
357*7c568831SAndroid Build Coastguard Worker</tr>
358*7c568831SAndroid Build Coastguard Worker<tr>
359*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
360*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written or an XML_ENC_ERR code.</td>
361*7c568831SAndroid Build Coastguard Worker</tr>
362*7c568831SAndroid Build Coastguard Worker</tbody>
363*7c568831SAndroid Build Coastguard Worker</table></div>
364*7c568831SAndroid Build Coastguard Worker</div>
365*7c568831SAndroid Build Coastguard Worker<hr>
366*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
367*7c568831SAndroid Build Coastguard Worker<h3>
368*7c568831SAndroid Build Coastguard Worker<a name="xmlCharEncOutFunc"></a>xmlCharEncOutFunc ()</h3>
369*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlCharEncOutFunc		(<a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * handler, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> out, <br>					 <a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> in)<br>
370*7c568831SAndroid Build Coastguard Worker</pre>
371*7c568831SAndroid Build Coastguard Worker<p>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</p>
372*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
373*7c568831SAndroid Build Coastguard Worker<col align="left">
374*7c568831SAndroid Build Coastguard Worker<tbody>
375*7c568831SAndroid Build Coastguard Worker<tr>
376*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>handler</tt></i>:</span></td>
377*7c568831SAndroid Build Coastguard Worker<td>char encoding transformation data structure</td>
378*7c568831SAndroid Build Coastguard Worker</tr>
379*7c568831SAndroid Build Coastguard Worker<tr>
380*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
381*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the output.</td>
382*7c568831SAndroid Build Coastguard Worker</tr>
383*7c568831SAndroid Build Coastguard Worker<tr>
384*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
385*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-tree.html#xmlBuffer">xmlBuffer</a> for the input</td>
386*7c568831SAndroid Build Coastguard Worker</tr>
387*7c568831SAndroid Build Coastguard Worker<tr>
388*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
389*7c568831SAndroid Build Coastguard Worker<td>the number of bytes written or an XML_ENC_ERR code.</td>
390*7c568831SAndroid Build Coastguard Worker</tr>
391*7c568831SAndroid Build Coastguard Worker</tbody>
392*7c568831SAndroid Build Coastguard Worker</table></div>
393*7c568831SAndroid Build Coastguard Worker</div>
394*7c568831SAndroid Build Coastguard Worker<hr>
395*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
396*7c568831SAndroid Build Coastguard Worker<h3>
397*7c568831SAndroid Build Coastguard Worker<a name="xmlCleanupCharEncodingHandlers"></a>xmlCleanupCharEncodingHandlers ()</h3>
398*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void	xmlCleanupCharEncodingHandlers	(void)<br>
399*7c568831SAndroid Build Coastguard Worker</pre>
400*7c568831SAndroid Build Coastguard Worker<p>DEPRECATED: This function will be made private. Call <a href="libxml2-parser.html#xmlCleanupParser">xmlCleanupParser</a> to free global state but see the warnings there. <a href="libxml2-parser.html#xmlCleanupParser">xmlCleanupParser</a> should be only called once at program exit. In most cases, you don't have call cleanup functions at all. Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</p>
401*7c568831SAndroid Build Coastguard Worker</div>
402*7c568831SAndroid Build Coastguard Worker<hr>
403*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
404*7c568831SAndroid Build Coastguard Worker<h3>
405*7c568831SAndroid Build Coastguard Worker<a name="xmlCleanupEncodingAliases"></a>xmlCleanupEncodingAliases ()</h3>
406*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void	xmlCleanupEncodingAliases	(void)<br>
407*7c568831SAndroid Build Coastguard Worker</pre>
408*7c568831SAndroid Build Coastguard Worker<p>Unregisters all aliases</p>
409*7c568831SAndroid Build Coastguard Worker</div>
410*7c568831SAndroid Build Coastguard Worker<hr>
411*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
412*7c568831SAndroid Build Coastguard Worker<h3>
413*7c568831SAndroid Build Coastguard Worker<a name="xmlDelEncodingAlias"></a>xmlDelEncodingAlias ()</h3>
414*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlDelEncodingAlias		(const char * alias)<br>
415*7c568831SAndroid Build Coastguard Worker</pre>
416*7c568831SAndroid Build Coastguard Worker<p>Unregisters an encoding alias @alias</p>
417*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
418*7c568831SAndroid Build Coastguard Worker<col align="left">
419*7c568831SAndroid Build Coastguard Worker<tbody>
420*7c568831SAndroid Build Coastguard Worker<tr>
421*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>alias</tt></i>:</span></td>
422*7c568831SAndroid Build Coastguard Worker<td>the alias name as parsed, in UTF-8 format (ASCII actually)</td>
423*7c568831SAndroid Build Coastguard Worker</tr>
424*7c568831SAndroid Build Coastguard Worker<tr>
425*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
426*7c568831SAndroid Build Coastguard Worker<td>0 in case of success, -1 in case of error</td>
427*7c568831SAndroid Build Coastguard Worker</tr>
428*7c568831SAndroid Build Coastguard Worker</tbody>
429*7c568831SAndroid Build Coastguard Worker</table></div>
430*7c568831SAndroid Build Coastguard Worker</div>
431*7c568831SAndroid Build Coastguard Worker<hr>
432*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
433*7c568831SAndroid Build Coastguard Worker<h3>
434*7c568831SAndroid Build Coastguard Worker<a name="xmlDetectCharEncoding"></a>xmlDetectCharEncoding ()</h3>
435*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>	xmlDetectCharEncoding	(const unsigned char * in, <br>					 int len)<br>
436*7c568831SAndroid Build Coastguard Worker</pre>
437*7c568831SAndroid Build Coastguard Worker<p>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</p>
438*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
439*7c568831SAndroid Build Coastguard Worker<col align="left">
440*7c568831SAndroid Build Coastguard Worker<tbody>
441*7c568831SAndroid Build Coastguard Worker<tr>
442*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>in</tt></i>:</span></td>
443*7c568831SAndroid Build Coastguard Worker<td>a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).</td>
444*7c568831SAndroid Build Coastguard Worker</tr>
445*7c568831SAndroid Build Coastguard Worker<tr>
446*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>len</tt></i>:</span></td>
447*7c568831SAndroid Build Coastguard Worker<td>pointer to the length of the buffer</td>
448*7c568831SAndroid Build Coastguard Worker</tr>
449*7c568831SAndroid Build Coastguard Worker<tr>
450*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
451*7c568831SAndroid Build Coastguard Worker<td>one of the XML_CHAR_ENCODING_... values.</td>
452*7c568831SAndroid Build Coastguard Worker</tr>
453*7c568831SAndroid Build Coastguard Worker</tbody>
454*7c568831SAndroid Build Coastguard Worker</table></div>
455*7c568831SAndroid Build Coastguard Worker</div>
456*7c568831SAndroid Build Coastguard Worker<hr>
457*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
458*7c568831SAndroid Build Coastguard Worker<h3>
459*7c568831SAndroid Build Coastguard Worker<a name="xmlFindCharEncodingHandler"></a>xmlFindCharEncodingHandler ()</h3>
460*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	xmlFindCharEncodingHandler	(const char * name)<br>
461*7c568831SAndroid Build Coastguard Worker</pre>
462*7c568831SAndroid Build Coastguard Worker<p>DEPRECATED: Use <a href="libxml2-encoding.html#xmlOpenCharEncodingHandler">xmlOpenCharEncodingHandler</a> which has better error reporting.</p>
463*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
464*7c568831SAndroid Build Coastguard Worker<col align="left">
465*7c568831SAndroid Build Coastguard Worker<tbody>
466*7c568831SAndroid Build Coastguard Worker<tr>
467*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>name</tt></i>:</span></td>
468*7c568831SAndroid Build Coastguard Worker<td>a string describing the char encoding.</td>
469*7c568831SAndroid Build Coastguard Worker</tr>
470*7c568831SAndroid Build Coastguard Worker<tr>
471*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
472*7c568831SAndroid Build Coastguard Worker<td>the handler or NULL if no handler was found or an error occurred.</td>
473*7c568831SAndroid Build Coastguard Worker</tr>
474*7c568831SAndroid Build Coastguard Worker</tbody>
475*7c568831SAndroid Build Coastguard Worker</table></div>
476*7c568831SAndroid Build Coastguard Worker</div>
477*7c568831SAndroid Build Coastguard Worker<hr>
478*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
479*7c568831SAndroid Build Coastguard Worker<h3>
480*7c568831SAndroid Build Coastguard Worker<a name="xmlGetCharEncodingHandler"></a>xmlGetCharEncodingHandler ()</h3>
481*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	xmlGetCharEncodingHandler	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br>
482*7c568831SAndroid Build Coastguard Worker</pre>
483*7c568831SAndroid Build Coastguard Worker<p>DEPRECATED: Use <a href="libxml2-encoding.html#xmlLookupCharEncodingHandler">xmlLookupCharEncodingHandler</a> which has better error reporting.</p>
484*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
485*7c568831SAndroid Build Coastguard Worker<col align="left">
486*7c568831SAndroid Build Coastguard Worker<tbody>
487*7c568831SAndroid Build Coastguard Worker<tr>
488*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>enc</tt></i>:</span></td>
489*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> value.</td>
490*7c568831SAndroid Build Coastguard Worker</tr>
491*7c568831SAndroid Build Coastguard Worker<tr>
492*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
493*7c568831SAndroid Build Coastguard Worker<td>the handler or NULL if no handler was found or an error occurred.</td>
494*7c568831SAndroid Build Coastguard Worker</tr>
495*7c568831SAndroid Build Coastguard Worker</tbody>
496*7c568831SAndroid Build Coastguard Worker</table></div>
497*7c568831SAndroid Build Coastguard Worker</div>
498*7c568831SAndroid Build Coastguard Worker<hr>
499*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
500*7c568831SAndroid Build Coastguard Worker<h3>
501*7c568831SAndroid Build Coastguard Worker<a name="xmlGetCharEncodingName"></a>xmlGetCharEncodingName ()</h3>
502*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">const char *	xmlGetCharEncodingName	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br>
503*7c568831SAndroid Build Coastguard Worker</pre>
504*7c568831SAndroid Build Coastguard Worker<p>The "canonical" name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3 Character Encoding in Entities</p>
505*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
506*7c568831SAndroid Build Coastguard Worker<col align="left">
507*7c568831SAndroid Build Coastguard Worker<tbody>
508*7c568831SAndroid Build Coastguard Worker<tr>
509*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>enc</tt></i>:</span></td>
510*7c568831SAndroid Build Coastguard Worker<td>the encoding</td>
511*7c568831SAndroid Build Coastguard Worker</tr>
512*7c568831SAndroid Build Coastguard Worker<tr>
513*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
514*7c568831SAndroid Build Coastguard Worker<td>the canonical name for the given encoding</td>
515*7c568831SAndroid Build Coastguard Worker</tr>
516*7c568831SAndroid Build Coastguard Worker</tbody>
517*7c568831SAndroid Build Coastguard Worker</table></div>
518*7c568831SAndroid Build Coastguard Worker</div>
519*7c568831SAndroid Build Coastguard Worker<hr>
520*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
521*7c568831SAndroid Build Coastguard Worker<h3>
522*7c568831SAndroid Build Coastguard Worker<a name="xmlGetEncodingAlias"></a>xmlGetEncodingAlias ()</h3>
523*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">const char *	xmlGetEncodingAlias	(const char * alias)<br>
524*7c568831SAndroid Build Coastguard Worker</pre>
525*7c568831SAndroid Build Coastguard Worker<p>Lookup an encoding name for the given alias.</p>
526*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
527*7c568831SAndroid Build Coastguard Worker<col align="left">
528*7c568831SAndroid Build Coastguard Worker<tbody>
529*7c568831SAndroid Build Coastguard Worker<tr>
530*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>alias</tt></i>:</span></td>
531*7c568831SAndroid Build Coastguard Worker<td>the alias name as parsed, in UTF-8 format (ASCII actually)</td>
532*7c568831SAndroid Build Coastguard Worker</tr>
533*7c568831SAndroid Build Coastguard Worker<tr>
534*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
535*7c568831SAndroid Build Coastguard Worker<td>NULL if not found, otherwise the original name</td>
536*7c568831SAndroid Build Coastguard Worker</tr>
537*7c568831SAndroid Build Coastguard Worker</tbody>
538*7c568831SAndroid Build Coastguard Worker</table></div>
539*7c568831SAndroid Build Coastguard Worker</div>
540*7c568831SAndroid Build Coastguard Worker<hr>
541*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
542*7c568831SAndroid Build Coastguard Worker<h3>
543*7c568831SAndroid Build Coastguard Worker<a name="xmlInitCharEncodingHandlers"></a>xmlInitCharEncodingHandlers ()</h3>
544*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void	xmlInitCharEncodingHandlers	(void)<br>
545*7c568831SAndroid Build Coastguard Worker</pre>
546*7c568831SAndroid Build Coastguard Worker<p>DEPRECATED: Alias for <a href="libxml2-parser.html#xmlInitParser">xmlInitParser</a>.</p>
547*7c568831SAndroid Build Coastguard Worker</div>
548*7c568831SAndroid Build Coastguard Worker<hr>
549*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
550*7c568831SAndroid Build Coastguard Worker<h3>
551*7c568831SAndroid Build Coastguard Worker<a name="xmlLookupCharEncodingHandler"></a>xmlLookupCharEncodingHandler ()</h3>
552*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlLookupCharEncodingHandler	(<a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc, <br>					 <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> ** out)<br>
553*7c568831SAndroid Build Coastguard Worker</pre>
554*7c568831SAndroid Build Coastguard Worker<p>Find or create a handler matching the encoding. If no default or registered handler could be found, try to create a handler using iconv or ICU if supported. The handler must be closed with <a href="libxml2-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a>. Available since 2.13.0.</p>
555*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
556*7c568831SAndroid Build Coastguard Worker<col align="left">
557*7c568831SAndroid Build Coastguard Worker<tbody>
558*7c568831SAndroid Build Coastguard Worker<tr>
559*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>enc</tt></i>:</span></td>
560*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a> value.</td>
561*7c568831SAndroid Build Coastguard Worker</tr>
562*7c568831SAndroid Build Coastguard Worker<tr>
563*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
564*7c568831SAndroid Build Coastguard Worker<td>pointer to result</td>
565*7c568831SAndroid Build Coastguard Worker</tr>
566*7c568831SAndroid Build Coastguard Worker<tr>
567*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
568*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> error code.</td>
569*7c568831SAndroid Build Coastguard Worker</tr>
570*7c568831SAndroid Build Coastguard Worker</tbody>
571*7c568831SAndroid Build Coastguard Worker</table></div>
572*7c568831SAndroid Build Coastguard Worker</div>
573*7c568831SAndroid Build Coastguard Worker<hr>
574*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
575*7c568831SAndroid Build Coastguard Worker<h3>
576*7c568831SAndroid Build Coastguard Worker<a name="xmlNewCharEncodingHandler"></a>xmlNewCharEncodingHandler ()</h3>
577*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>	xmlNewCharEncodingHandler	(const char * name, <br>							 <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> input, <br>							 <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> output)<br>
578*7c568831SAndroid Build Coastguard Worker</pre>
579*7c568831SAndroid Build Coastguard Worker<p>Create and registers an <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a>.</p>
580*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
581*7c568831SAndroid Build Coastguard Worker<col align="left">
582*7c568831SAndroid Build Coastguard Worker<tbody>
583*7c568831SAndroid Build Coastguard Worker<tr>
584*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>name</tt></i>:</span></td>
585*7c568831SAndroid Build Coastguard Worker<td>the encoding name, in UTF-8 format (ASCII actually)</td>
586*7c568831SAndroid Build Coastguard Worker</tr>
587*7c568831SAndroid Build Coastguard Worker<tr>
588*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>input</tt></i>:</span></td>
589*7c568831SAndroid Build Coastguard Worker<td>the <a href="libxml2-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a> to read that encoding</td>
590*7c568831SAndroid Build Coastguard Worker</tr>
591*7c568831SAndroid Build Coastguard Worker<tr>
592*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>output</tt></i>:</span></td>
593*7c568831SAndroid Build Coastguard Worker<td>the <a href="libxml2-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> to write that encoding</td>
594*7c568831SAndroid Build Coastguard Worker</tr>
595*7c568831SAndroid Build Coastguard Worker<tr>
596*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
597*7c568831SAndroid Build Coastguard Worker<td>the <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> created (or NULL in case of error).</td>
598*7c568831SAndroid Build Coastguard Worker</tr>
599*7c568831SAndroid Build Coastguard Worker</tbody>
600*7c568831SAndroid Build Coastguard Worker</table></div>
601*7c568831SAndroid Build Coastguard Worker</div>
602*7c568831SAndroid Build Coastguard Worker<hr>
603*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
604*7c568831SAndroid Build Coastguard Worker<h3>
605*7c568831SAndroid Build Coastguard Worker<a name="xmlOpenCharEncodingHandler"></a>xmlOpenCharEncodingHandler ()</h3>
606*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int	xmlOpenCharEncodingHandler	(const char * name, <br>					 int output, <br>					 <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> ** out)<br>
607*7c568831SAndroid Build Coastguard Worker</pre>
608*7c568831SAndroid Build Coastguard Worker<p>Find or create a handler matching the encoding. If no default or registered handler could be found, try to create a handler using iconv or ICU if supported. The handler must be closed with <a href="libxml2-encoding.html#xmlCharEncCloseFunc">xmlCharEncCloseFunc</a>. Available since 2.13.0.</p>
609*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
610*7c568831SAndroid Build Coastguard Worker<col align="left">
611*7c568831SAndroid Build Coastguard Worker<tbody>
612*7c568831SAndroid Build Coastguard Worker<tr>
613*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>name</tt></i>:</span></td>
614*7c568831SAndroid Build Coastguard Worker<td>a string describing the char encoding.</td>
615*7c568831SAndroid Build Coastguard Worker</tr>
616*7c568831SAndroid Build Coastguard Worker<tr>
617*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>output</tt></i>:</span></td>
618*7c568831SAndroid Build Coastguard Worker<td>boolean, use handler for output</td>
619*7c568831SAndroid Build Coastguard Worker</tr>
620*7c568831SAndroid Build Coastguard Worker<tr>
621*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>out</tt></i>:</span></td>
622*7c568831SAndroid Build Coastguard Worker<td>pointer to result</td>
623*7c568831SAndroid Build Coastguard Worker</tr>
624*7c568831SAndroid Build Coastguard Worker<tr>
625*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
626*7c568831SAndroid Build Coastguard Worker<td>an <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> error code.</td>
627*7c568831SAndroid Build Coastguard Worker</tr>
628*7c568831SAndroid Build Coastguard Worker</tbody>
629*7c568831SAndroid Build Coastguard Worker</table></div>
630*7c568831SAndroid Build Coastguard Worker</div>
631*7c568831SAndroid Build Coastguard Worker<hr>
632*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
633*7c568831SAndroid Build Coastguard Worker<h3>
634*7c568831SAndroid Build Coastguard Worker<a name="xmlParseCharEncoding"></a>xmlParseCharEncoding ()</h3>
635*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-encoding.html#xmlCharEncoding">xmlCharEncoding</a>	xmlParseCharEncoding	(const char * name)<br>
636*7c568831SAndroid Build Coastguard Worker</pre>
637*7c568831SAndroid Build Coastguard Worker<p>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</p>
638*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
639*7c568831SAndroid Build Coastguard Worker<col align="left">
640*7c568831SAndroid Build Coastguard Worker<tbody>
641*7c568831SAndroid Build Coastguard Worker<tr>
642*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>name</tt></i>:</span></td>
643*7c568831SAndroid Build Coastguard Worker<td>the encoding name as parsed, in UTF-8 format (ASCII actually)</td>
644*7c568831SAndroid Build Coastguard Worker</tr>
645*7c568831SAndroid Build Coastguard Worker<tr>
646*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
647*7c568831SAndroid Build Coastguard Worker<td>one of the XML_CHAR_ENCODING_... values or <a href="libxml2-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> if not recognized.</td>
648*7c568831SAndroid Build Coastguard Worker</tr>
649*7c568831SAndroid Build Coastguard Worker</tbody>
650*7c568831SAndroid Build Coastguard Worker</table></div>
651*7c568831SAndroid Build Coastguard Worker</div>
652*7c568831SAndroid Build Coastguard Worker<hr>
653*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en">
654*7c568831SAndroid Build Coastguard Worker<h3>
655*7c568831SAndroid Build Coastguard Worker<a name="xmlRegisterCharEncodingHandler"></a>xmlRegisterCharEncodingHandler ()</h3>
656*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void	xmlRegisterCharEncodingHandler	(<a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)<br>
657*7c568831SAndroid Build Coastguard Worker</pre>
658*7c568831SAndroid Build Coastguard Worker<p>Register the char encoding handler, surprising, isn't it ?</p>
659*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0">
660*7c568831SAndroid Build Coastguard Worker<col align="left">
661*7c568831SAndroid Build Coastguard Worker<tbody><tr>
662*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>handler</tt></i>:</span></td>
663*7c568831SAndroid Build Coastguard Worker<td>the <a href="libxml2-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler block</td>
664*7c568831SAndroid Build Coastguard Worker</tr></tbody>
665*7c568831SAndroid Build Coastguard Worker</table></div>
666*7c568831SAndroid Build Coastguard Worker</div>
667*7c568831SAndroid Build Coastguard Worker<hr>
668*7c568831SAndroid Build Coastguard Worker</div>
669*7c568831SAndroid Build Coastguard Worker</div>
670*7c568831SAndroid Build Coastguard Worker</body>
671*7c568831SAndroid Build Coastguard Worker</html>
672