Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 1154

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csUnicodeTransform Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csUnicodeTransform Class Reference<br>
<small>
[<a class="el" href="group__util.html">Utilities</a>]</small>
</h1><!-- doxytag: class="csUnicodeTransform" -->Contains functions to convert between several UTF encodings.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="csuctransform_8h-source.html">csutil/csuctransform.h</a>&gt;</code>
<p>

<p>
<a href="classcsUnicodeTransform-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">UTF Decoders</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#d069d0d41c21b04b2e62edb83c3cbac3">Decode</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-32.  <a href="#d069d0d41c21b04b2e62edb83c3cbac3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#4971c5f03f1f54f945e002458162bc2d">Decode</a> (const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-16.  <a href="#4971c5f03f1f54f945e002458162bc2d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#24c171b2e92da381499801aba4422106">Decode</a> (const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-8.  <a href="#24c171b2e92da381499801aba4422106"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#723ec7aa6c1ef41e28f56f26a2ead1c9">UTF16Decode</a> (const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-16.  <a href="#723ec7aa6c1ef41e28f56f26a2ead1c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#cac90f99a50393c4a81e5b9912ac6b74">UTF32Decode</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-32.  <a href="#cac90f99a50393c4a81e5b9912ac6b74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#21e5a75955302bbc73751a4dc459af54">UTF8Decode</a> (const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *str, size_t strlen, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;ch, bool *isValid=0, bool returnNonChar=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode an Unicode code point encoded in UTF-8.  <a href="#21e5a75955302bbc73751a4dc459af54"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">UTF Encoders</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#0b5536e3d2a6d70d16e4d6c289011013">Encode</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-32.  <a href="#0b5536e3d2a6d70d16e4d6c289011013"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#a61d511bc48e690af379cf27fe95836a">Encode</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-16.  <a href="#a61d511bc48e690af379cf27fe95836a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#0af2e3329f354f8626f43c5dc56c2634">Encode</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-8.  <a href="#0af2e3329f354f8626f43c5dc56c2634"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#3dbb184083e5ddf867cbb2ff787b08ac">EncodeUTF16</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-16.  <a href="#3dbb184083e5ddf867cbb2ff787b08ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#58c5c58bbf789057e6ea0b9bc86356a1">EncodeUTF32</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-32.  <a href="#58c5c58bbf789057e6ea0b9bc86356a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#ea53afe26677ed7575661735e3087075">EncodeUTF8</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *buf, size_t bufsize, bool allowNonchars=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an Unicode code point to UTF-8.  <a href="#ea53afe26677ed7575661735e3087075"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Code point mappings</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#264f20ba0c8a44833f0276d1d39ac068">MapToFold</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *dest, size_t destSize, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> flags=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map a code point to its fold equivalent(s).  <a href="#264f20ba0c8a44833f0276d1d39ac068"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#68b49c8dbeb3970733ba455f33e6e61c">MapToLower</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *dest, size_t destSize, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> flags=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map a code point to its lower case equivalent(s).  <a href="#68b49c8dbeb3970733ba455f33e6e61c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#807ddce5c1282d7fe147496848332117">MapToUpper</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> ch, <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *dest, size_t destSize, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> flags=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map a code point to its upper case equivalent(s).  <a href="#807ddce5c1282d7fe147496848332117"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Helpers to skip encoded code units in different UTF encodings</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#d90b496800a6591cf1c98b43184ebc51">UTF16Rewind</a> (const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *str, size_t maxRew)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-16 buffer need to skipped back to get to the start of the previous encoded code point.  <a href="#d90b496800a6591cf1c98b43184ebc51"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#d4c06533155e5a6825bda80f65bbac45">UTF16Skip</a> (const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *str, size_t maxSkip)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-16 buffer need to be skipped to get to the next encoded char.  <a href="#d4c06533155e5a6825bda80f65bbac45"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#310ed95864f7d579e378077f40ab4df3">UTF32Rewind</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *str, size_t maxRew)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-32 buffer need to skipped back to get to the start of the previous encoded code point.  <a href="#310ed95864f7d579e378077f40ab4df3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#637e29374e0a8419ced315e08af920b8">UTF32Skip</a> (const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *str, size_t maxSkip)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-32 buffer need to be skipped to get to the next encoded char.  <a href="#637e29374e0a8419ced315e08af920b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#ddfc476b7f8edcb769e2d778610225e9">UTF8Rewind</a> (const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *str, size_t maxRew)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-8 buffer need to skipped back to get to the start of the previous encoded code point.  <a href="#ddfc476b7f8edcb769e2d778610225e9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#0d4b2524b9ec9c6f3fe3e61e6ab97e00">UTF8Skip</a> (const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *str, size_t maxSkip)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine how many code units in an UTF-8 buffer need to be skipped to get to the next encoded char.  <a href="#0d4b2524b9ec9c6f3fe3e61e6ab97e00"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Converters between strings in different UTF encodings</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#464855759c78622ee2e361b10f000b6b">UTF16to32</a> (<a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-16 to UTF-32.  <a href="#464855759c78622ee2e361b10f000b6b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#8ac51054b36028a0a20d031573cd1718">UTF16to8</a> (<a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-16 to UTF-8.  <a href="#8ac51054b36028a0a20d031573cd1718"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#88fc5662ce654ab827edd968c119175d">UTF32to16</a> (<a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-32 to UTF-16.  <a href="#88fc5662ce654ab827edd968c119175d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#9b93436f29d42d97060a477898d280de">UTF32to8</a> (<a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-32 to UTF-8.  <a href="#9b93436f29d42d97060a477898d280de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#bdad710dfb609d2d5edf6752506b4d52">UTF8to16</a> (<a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-8 to UTF-16.  <a href="#bdad710dfb609d2d5edf6752506b4d52"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsUnicodeTransform.html#aab15b28adce906d66120d65717c47b7">UTF8to32</a> (<a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *dest, size_t destSize, const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *source, size_t srcSize=(size_t)-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert UTF-8 to UTF-32.  <a href="#aab15b28adce906d66120d65717c47b7"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Contains functions to convert between several UTF encodings. 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00079">79</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="d069d0d41c21b04b2e62edb83c3cbac3"></a><!-- doxytag: member="csUnicodeTransform::Decode" ref="d069d0d41c21b04b2e62edb83c3cbac3" args="(const utf32_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-32. 
<p>
Decode an Unicode code point encoded in UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00295">295</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4971c5f03f1f54f945e002458162bc2d"></a><!-- doxytag: member="csUnicodeTransform::Decode" ref="4971c5f03f1f54f945e002458162bc2d" args="(const utf16_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-16. 
<p>
Decode an Unicode code point encoded in UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00286">286</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="24c171b2e92da381499801aba4422106"></a><!-- doxytag: member="csUnicodeTransform::Decode" ref="24c171b2e92da381499801aba4422106" args="(const utf8_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-8. 
<p>
Decode an Unicode code point encoded in UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00277">277</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>Referenced by <a class="el" href="draw__text_8h-source.html#l00045">csG2DDrawText&lt; Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 &gt;::DrawText()</a>, and <a class="el" href="formatter_8h-source.html#l00083">csFmtDefaultReader&lt; T &gt;::GetNext()</a>.</p>

</div>
</div><p>
<a class="anchor" name="0b5536e3d2a6d70d16e4d6c289011013"></a><!-- doxytag: member="csUnicodeTransform::Encode" ref="0b5536e3d2a6d70d16e4d6c289011013" args="(const utf32_char ch, utf32_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Encode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-32. 
<p>
Encode an Unicode code point to UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF8_ENCODED utf8_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00479">479</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a61d511bc48e690af379cf27fe95836a"></a><!-- doxytag: member="csUnicodeTransform::Encode" ref="a61d511bc48e690af379cf27fe95836a" args="(const utf32_char ch, utf16_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Encode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-16. 
<p>
Encode an Unicode code point to UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF8_ENCODED utf8_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00470">470</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="0af2e3329f354f8626f43c5dc56c2634"></a><!-- doxytag: member="csUnicodeTransform::Encode" ref="0af2e3329f354f8626f43c5dc56c2634" args="(const utf32_char ch, utf8_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::Encode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-8. 
<p>
Encode an Unicode code point to UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF8_ENCODED utf8_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00461">461</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>Referenced by <a class="el" href="formatter_8h-source.html#l00114">csFmtDefaultWriter&lt; T &gt;::Put()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3dbb184083e5ddf867cbb2ff787b08ac"></a><!-- doxytag: member="csUnicodeTransform::EncodeUTF16" ref="3dbb184083e5ddf867cbb2ff787b08ac" args="(const utf32_char ch, utf16_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::EncodeUTF16           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-16. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF16_ENCODED utf16_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00401">401</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00071">CS_UC_CHAR_HIGH_SURROGATE_FIRST</a>, <a class="el" href="csunicode_8h-source.html#l00075">CS_UC_CHAR_LOW_SURROGATE_FIRST</a>, <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00055">CS_UC_LAST_CHAR</a>, and <a class="el" href="csuctransform_8h-source.html#l00489">OUTPUT_CHAR</a>.</p>

</div>
</div><p>
<a class="anchor" name="58c5c58bbf789057e6ea0b9bc86356a1"></a><!-- doxytag: member="csUnicodeTransform::EncodeUTF32" ref="58c5c58bbf789057e6ea0b9bc86356a1" args="(const utf32_char ch, utf32_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::EncodeUTF32           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-32. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF32_ENCODED utf32_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00443">443</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00055">CS_UC_LAST_CHAR</a>, and <a class="el" href="csuctransform_8h-source.html#l00489">OUTPUT_CHAR</a>.</p>

</div>
</div><p>
<a class="anchor" name="ea53afe26677ed7575661735e3087075"></a><!-- doxytag: member="csUnicodeTransform::EncodeUTF8" ref="ea53afe26677ed7575661735e3087075" args="(const utf32_char ch, utf8_char *buf, size_t bufsize, bool allowNonchars=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::EncodeUTF8           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>allowNonchars</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Encode an Unicode code point to UTF-8. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Pointer to the buffer receiving the encoded code point. When a fixed-size buffer is used it's a good idea to make it CS_UC_MAX_UTF8_ENCODED utf8_chars large. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bufsize</em>&nbsp;</td><td>Number of code units that fit in <em>buf</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>allowNonchars</em>&nbsp;</td><td>Whether non-character or high and low surrogates are encoded. Normally, those code points are rejected to prevent the generation of invalid encoded strings. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units needed to encode <em>ch</em>. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The buffer will be filled up as much as possible. Check the returned value whether the encoded code point completely fit into the buffer. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00333">333</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00055">CS_UC_LAST_CHAR</a>, and <a class="el" href="csuctransform_8h-source.html#l00489">OUTPUT_CHAR</a>.</p>

</div>
</div><p>
<a class="anchor" name="264f20ba0c8a44833f0276d1d39ac068"></a><!-- doxytag: member="csUnicodeTransform::MapToFold" ref="264f20ba0c8a44833f0276d1d39ac068" args="(const utf32_char ch, utf32_char *dest, size_t destSize, uint flags=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::MapToFold           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>flags</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map a code point to its fold equivalent(s). 
<p>
Fold mapping is useful for binary comparison of two Unicode strings. Map a code point to its upper case equivalent(s). <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to be mapped. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags to control the result of the mapping. Currently supported is <a class="el" href="group__util.html#ggfccd240f973cf154952fb917c9209719502727b715dbfce568251bcf397ca4ca" title="Force &#39;simple&#39; mappings, that is, at most one code point is returned.">csUcMapSimple</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units the complete mapping result would require. </dd></dl>
 
</div>
</div><p>
<a class="anchor" name="68b49c8dbeb3970733ba455f33e6e61c"></a><!-- doxytag: member="csUnicodeTransform::MapToLower" ref="68b49c8dbeb3970733ba455f33e6e61c" args="(const utf32_char ch, utf32_char *dest, size_t destSize, uint flags=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::MapToLower           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>flags</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map a code point to its lower case equivalent(s). 
<p>
Map a code point to its upper case equivalent(s). <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to be mapped. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags to control the result of the mapping. Currently supported is <a class="el" href="group__util.html#ggfccd240f973cf154952fb917c9209719502727b715dbfce568251bcf397ca4ca" title="Force &#39;simple&#39; mappings, that is, at most one code point is returned.">csUcMapSimple</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units the complete mapping result would require. </dd></dl>
 
</div>
</div><p>
<a class="anchor" name="807ddce5c1282d7fe147496848332117"></a><!-- doxytag: member="csUnicodeTransform::MapToUpper" ref="807ddce5c1282d7fe147496848332117" args="(const utf32_char ch, utf32_char *dest, size_t destSize, uint flags=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::MapToUpper           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a>&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>flags</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Map a code point to its upper case equivalent(s). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Code point to be mapped. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags to control the result of the mapping. Currently supported is <a class="el" href="group__util.html#ggfccd240f973cf154952fb917c9209719502727b715dbfce568251bcf397ca4ca" title="Force &#39;simple&#39; mappings, that is, at most one code point is returned.">csUcMapSimple</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units the complete mapping result would require. </dd></dl>

</div>
</div><p>
<a class="anchor" name="723ec7aa6c1ef41e28f56f26a2ead1c9"></a><!-- doxytag: member="csUnicodeTransform::UTF16Decode" ref="723ec7aa6c1ef41e28f56f26a2ead1c9" args="(const utf16_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF16Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-16. 
<p>
Decode an Unicode code point encoded in UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00214">214</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00060">CS_UC_IS_HIGH_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00062">CS_UC_IS_LOW_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csuctransform_8h-source.html#l00082">FAIL</a>, <a class="el" href="csuctransform_8h-source.html#l00093">GET_NEXT</a>, and <a class="el" href="csuctransform_8h-source.html#l00089">SUCCEED</a>.</p>

</div>
</div><p>
<a class="anchor" name="d90b496800a6591cf1c98b43184ebc51"></a><!-- doxytag: member="csUnicodeTransform::UTF16Rewind" ref="d90b496800a6591cf1c98b43184ebc51" args="(const utf16_char *str, size_t maxRew)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF16Rewind           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxRew</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-16 buffer need to skipped back to get to the start of the previous encoded code point. 
<p>
Determine how many code units in an UTF-8 buffer need to skipped back to get to the start of the previous encoded code point. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point after the code point that is actually to be skipped back. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxRew</em>&nbsp;</td><td>The number of code units to go back at max. Typically, this is the number of chars from <em>str</em> to the start of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip back in the buffer. Returns 0 if <em>maxRew</em> is 0. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00963">963</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00060">CS_UC_IS_HIGH_SURROGATE</a>, and <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>.</p>

</div>
</div><p>
<a class="anchor" name="d4c06533155e5a6825bda80f65bbac45"></a><!-- doxytag: member="csUnicodeTransform::UTF16Skip" ref="d4c06533155e5a6825bda80f65bbac45" args="(const utf16_char *str, size_t maxSkip)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF16Skip           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxSkip</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-16 buffer need to be skipped to get to the next encoded char. 
<p>
Determine how many code units in an UTF-8 buffer need to be skipped to get to the next encoded char. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to buffer with encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxSkip</em>&nbsp;</td><td>The number of code units to skip at max. Usually, this is the number of chars from <em>str</em> to the end of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip in the buffer. Returns 0 if <em>maxSkip</em> is 0. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00950">950</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00060">CS_UC_IS_HIGH_SURROGATE</a>.</p>

</div>
</div><p>
<a class="anchor" name="464855759c78622ee2e361b10f000b6b"></a><!-- doxytag: member="csUnicodeTransform::UTF16to32" ref="464855759c78622ee2e361b10f000b6b" args="(utf32_char *dest, size_t destSize, const utf16_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF16to32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-16 to UTF-32. 
<p>
Convert UTF-8 to UTF-16. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00573">573</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8ac51054b36028a0a20d031573cd1718"></a><!-- doxytag: member="csUnicodeTransform::UTF16to8" ref="8ac51054b36028a0a20d031573cd1718" args="(utf8_char *dest, size_t destSize, const utf16_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF16to8           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-16 to UTF-8. 
<p>
Convert UTF-8 to UTF-16. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00568">568</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="cac90f99a50393c4a81e5b9912ac6b74"></a><!-- doxytag: member="csUnicodeTransform::UTF32Decode" ref="cac90f99a50393c4a81e5b9912ac6b74" args="(const utf32_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF32Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-32. 
<p>
Decode an Unicode code point encoded in UTF-8. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00257">257</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00055">CS_UC_LAST_CHAR</a>, <a class="el" href="csuctransform_8h-source.html#l00082">FAIL</a>, <a class="el" href="csuctransform_8h-source.html#l00093">GET_NEXT</a>, and <a class="el" href="csuctransform_8h-source.html#l00089">SUCCEED</a>.</p>

</div>
</div><p>
<a class="anchor" name="310ed95864f7d579e378077f40ab4df3"></a><!-- doxytag: member="csUnicodeTransform::UTF32Rewind" ref="310ed95864f7d579e378077f40ab4df3" args="(const utf32_char *str, size_t maxRew)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF32Rewind           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxRew</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-32 buffer need to skipped back to get to the start of the previous encoded code point. 
<p>
Determine how many code units in an UTF-8 buffer need to skipped back to get to the start of the previous encoded code point. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point after the code point that is actually to be skipped back. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxRew</em>&nbsp;</td><td>The number of code units to go back at max. Typically, this is the number of chars from <em>str</em> to the start of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip back in the buffer. Returns 0 if <em>maxRew</em> is 0. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00995">995</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="637e29374e0a8419ced315e08af920b8"></a><!-- doxytag: member="csUnicodeTransform::UTF32Skip" ref="637e29374e0a8419ced315e08af920b8" args="(const utf32_char *str, size_t maxSkip)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF32Skip           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxSkip</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-32 buffer need to be skipped to get to the next encoded char. 
<p>
Determine how many code units in an UTF-8 buffer need to be skipped to get to the next encoded char. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to buffer with encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxSkip</em>&nbsp;</td><td>The number of code units to skip at max. Usually, this is the number of chars from <em>str</em> to the end of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip in the buffer. Returns 0 if <em>maxSkip</em> is 0. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00984">984</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="88fc5662ce654ab827edd968c119175d"></a><!-- doxytag: member="csUnicodeTransform::UTF32to16" ref="88fc5662ce654ab827edd968c119175d" args="(utf16_char *dest, size_t destSize, const utf32_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF32to16           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-32 to UTF-16. 
<p>
Convert UTF-8 to UTF-16. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00584">584</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="9b93436f29d42d97060a477898d280de"></a><!-- doxytag: member="csUnicodeTransform::UTF32to8" ref="9b93436f29d42d97060a477898d280de" args="(utf8_char *dest, size_t destSize, const utf32_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF32to8           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-32 to UTF-8. 
<p>
Convert UTF-8 to UTF-16. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00579">579</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="21e5a75955302bbc73751a4dc459af54"></a><!-- doxytag: member="csUnicodeTransform::UTF8Decode" ref="21e5a75955302bbc73751a4dc459af54" args="(const utf8_char *str, size_t strlen, utf32_char &amp;ch, bool *isValid=0, bool returnNonChar=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF8Decode           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>strlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>isValid</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>returnNonChar</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode an Unicode code point encoded in UTF-8. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>strlen</em>&nbsp;</td><td>Number of code units in the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Decoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isValid</em>&nbsp;</td><td>When an error occured during decoding, <em>ch</em> contains the replacement character (<a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a>). In this case, the bool pointed to by <em>isValid</em> will be set to false. The parameter can be 0, but in this case the information whether the decoded char is the replacement character because the source data is errorneous is lost. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>returnNonChar</em>&nbsp;</td><td>Whether decoded non-character or high and low surrogates are returned as such. Normally, those code points are replaced with <a class="el" href="group__util.html#gf3c9a65d5c394bfd305e620ef99351bb" title="Replacer char.">CS_UC_CHAR_REPLACER</a> to signal an invalid encoded code point. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of code units in <em>str</em> that have to be skipped to retrieve the next encoded code point. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00123">123</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

<p>References <a class="el" href="csunicode_8h-source.html#l00065">CS_UC_IS_NONCHARACTER</a>, <a class="el" href="csunicode_8h-source.html#l00058">CS_UC_IS_SURROGATE</a>, <a class="el" href="csunicode_8h-source.html#l00055">CS_UC_LAST_CHAR</a>, <a class="el" href="csuctransform_8h-source.html#l00082">FAIL</a>, <a class="el" href="csuctransform_8h-source.html#l00093">GET_NEXT</a>, and <a class="el" href="csuctransform_8h-source.html#l00089">SUCCEED</a>.</p>

<p>Referenced by <a class="el" href="draw__text_8h-source.html#l00045">csG2DDrawText&lt; Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 &gt;::DrawText()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ddfc476b7f8edcb769e2d778610225e9"></a><!-- doxytag: member="csUnicodeTransform::UTF8Rewind" ref="ddfc476b7f8edcb769e2d778610225e9" args="(const utf8_char *str, size_t maxRew)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF8Rewind           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxRew</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-8 buffer need to skipped back to get to the start of the previous encoded code point. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to the encoded code point after the code point that is actually to be skipped back. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxRew</em>&nbsp;</td><td>The number of code units to go back at max. Typically, this is the number of chars from <em>str</em> to the start of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip back in the buffer. Returns 0 if <em>maxRew</em> is 0. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00923">923</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="0d4b2524b9ec9c6f3fe3e61e6ab97e00"></a><!-- doxytag: member="csUnicodeTransform::UTF8Skip" ref="0d4b2524b9ec9c6f3fe3e61e6ab97e00" args="(const utf8_char *str, size_t maxSkip)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int csUnicodeTransform::UTF8Skip           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxSkip</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine how many code units in an UTF-8 buffer need to be skipped to get to the next encoded char. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Pointer to buffer with encoded code point. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxSkip</em>&nbsp;</td><td>The number of code units to skip at max. Usually, this is the number of chars from <em>str</em> to the end of the buffer. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of chars to skip in the buffer. Returns 0 if <em>maxSkip</em> is 0. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00882">882</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="bdad710dfb609d2d5edf6752506b4d52"></a><!-- doxytag: member="csUnicodeTransform::UTF8to16" ref="bdad710dfb609d2d5edf6752506b4d52" args="(utf16_char *dest, size_t destSize, const utf8_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF8to16           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g02506e0f0963f4590ed154373a24f43f">utf16_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-8 to UTF-16. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>

<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00557">557</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="aab15b28adce906d66120d65717c47b7"></a><!-- doxytag: member="csUnicodeTransform::UTF8to32" ref="aab15b28adce906d66120d65717c47b7" args="(utf32_char *dest, size_t destSize, const utf8_char *source, size_t srcSize=(size_t)-1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t csUnicodeTransform::UTF8to32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g47e911f87ff568b2779f26cf226f5070">utf32_char</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>destSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__util.html#g60f3213e4468d7d223f3a27ad792ad38">utf8_char</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>srcSize</em> = <code>(size_t)-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert UTF-8 to UTF-32. 
<p>
Convert UTF-8 to UTF-16. <p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destSize</em>&nbsp;</td><td>Number of code units the destination buffer can hold. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>Source buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srcSize</em>&nbsp;</td><td>Number of code units contained in the source buffer. If this is -1, the length will be determined automatically. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of code units in the complete converted string, including null terminator. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the complete converted string wouldn't fit the destination buffer, it is truncated. However, it'll also be null-terminated. Hence, if it has a size of 1, you get an empty string. The returned value is the number of code units needed for the *whole* converted string. </dd></dl>
 
<p>Definition at line <a class="el" href="csuctransform_8h-source.html#l00562">562</a> of file <a class="el" href="csuctransform_8h-source.html">csuctransform.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="csuctransform_8h-source.html">csuctransform.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>