blob: 122d1a19c5ce5958c3cd3756c2bb1b895548f564 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Unicode Manipulation: GLib Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GLib Reference Manual">
<link rel="up" href="glib-utilities.html" title="GLib Utilities">
<link rel="prev" href="glib-Character-Set-Conversion.html" title="Character Set Conversion">
<link rel="next" href="glib-Base64-Encoding.html" title="Base64 Encoding">
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#glib-Unicode-Manipulation.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="glib-Character-Set-Conversion.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="glib-Base64-Encoding.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="glib-Unicode-Manipulation"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="glib-Unicode-Manipulation.top_of_page"></a>Unicode Manipulation</span></h2>
<p>Unicode Manipulation — functions operating on Unicode characters and
UTF-8 strings</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-validate" title="g_unichar_validate ()">g_unichar_validate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalnum" title="g_unichar_isalnum ()">g_unichar_isalnum</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalpha" title="g_unichar_isalpha ()">g_unichar_isalpha</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iscntrl" title="g_unichar_iscntrl ()">g_unichar_iscntrl</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdefined" title="g_unichar_isdefined ()">g_unichar_isdefined</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdigit" title="g_unichar_isdigit ()">g_unichar_isdigit</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isgraph" title="g_unichar_isgraph ()">g_unichar_isgraph</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-islower" title="g_unichar_islower ()">g_unichar_islower</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ismark" title="g_unichar_ismark ()">g_unichar_ismark</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isprint" title="g_unichar_isprint ()">g_unichar_isprint</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ispunct" title="g_unichar_ispunct ()">g_unichar_ispunct</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isspace" title="g_unichar_isspace ()">g_unichar_isspace</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-istitle" title="g_unichar_istitle ()">g_unichar_istitle</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isupper" title="g_unichar_isupper ()">g_unichar_isupper</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isxdigit" title="g_unichar_isxdigit ()">g_unichar_isxdigit</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()">g_unichar_iswide</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide-cjk" title="g_unichar_iswide_cjk ()">g_unichar_iswide_cjk</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iszerowidth" title="g_unichar_iszerowidth ()">g_unichar_iszerowidth</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-toupper" title="g_unichar_toupper ()">g_unichar_toupper</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-tolower" title="g_unichar_tolower ()">g_unichar_tolower</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-totitle" title="g_unichar_totitle ()">g_unichar_totitle</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-digit-value" title="g_unichar_digit_value ()">g_unichar_digit_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-xdigit-value" title="g_unichar_xdigit_value ()">g_unichar_xdigit_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-compose" title="g_unichar_compose ()">g_unichar_compose</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-decompose" title="g_unichar_decompose ()">g_unichar_decompose</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-fully-decompose" title="g_unichar_fully_decompose ()">g_unichar_fully_decompose</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-type" title="g_unichar_type ()">g_unichar_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType"><span class="returnvalue">GUnicodeBreakType</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-break-type" title="g_unichar_break_type ()">g_unichar_break_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-combining-class" title="g_unichar_combining_class ()">g_unichar_combining_class</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-ordering" title="g_unicode_canonical_ordering ()">g_unicode_canonical_ordering</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-decomposition" title="g_unicode_canonical_decomposition ()">g_unicode_canonical_decomposition</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-mirror-char" title="g_unichar_get_mirror_char ()">g_unichar_get_mirror_char</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-script" title="g_unichar_get_script ()">g_unichar_get_script</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unicode-script-from-iso15924" title="g_unicode_script_from_iso15924 ()">g_unicode_script_from_iso15924</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unicode-script-to-iso15924" title="g_unicode_script_to_iso15924 ()">g_unicode_script_to_iso15924</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-next-char" title="g_utf8_next_char()">g_utf8_next_char</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()">g_utf8_get_char</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char-validated" title="g_utf8_get_char_validated ()">g_utf8_get_char_validated</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-offset-to-pointer" title="g_utf8_offset_to_pointer ()">g_utf8_offset_to_pointer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-pointer-to-offset" title="g_utf8_pointer_to_offset ()">g_utf8_pointer_to_offset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-prev-char" title="g_utf8_prev_char ()">g_utf8_prev_char</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-next-char" title="g_utf8_find_next_char ()">g_utf8_find_next_char</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-prev-char" title="g_utf8_find_prev_char ()">g_utf8_find_prev_char</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strlen" title="g_utf8_strlen ()">g_utf8_strlen</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strncpy" title="g_utf8_strncpy ()">g_utf8_strncpy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strchr" title="g_utf8_strchr ()">g_utf8_strchr</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strrchr" title="g_utf8_strrchr ()">g_utf8_strrchr</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strreverse" title="g_utf8_strreverse ()">g_utf8_strreverse</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-substring" title="g_utf8_substring ()">g_utf8_substring</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()">g_utf8_validate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strup" title="g_utf8_strup ()">g_utf8_strup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strdown" title="g_utf8_strdown ()">g_utf8_strdown</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()">g_utf8_casefold</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-normalize" title="g_utf8_normalize ()">g_utf8_normalize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()">g_utf8_collate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key" title="g_utf8_collate_key ()">g_utf8_collate_key</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key-for-filename" title="g_utf8_collate_key_for_filename ()">g_utf8_collate_key_for_filename</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-utf16" title="g_utf8_to_utf16 ()">g_utf8_to_utf16</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()">g_utf8_to_ucs4</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4-fast" title="g_utf8_to_ucs4_fast ()">g_utf8_to_ucs4_fast</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-ucs4" title="g_utf16_to_ucs4 ()">g_utf16_to_ucs4</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-utf8" title="g_utf16_to_utf8 ()">g_utf16_to_utf8</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf16" title="g_ucs4_to_utf16 ()">g_ucs4_to_utf16</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf8" title="g_ucs4_to_utf8 ()">g_ucs4_to_utf8</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-to-utf8" title="g_unichar_to_utf8 ()">g_unichar_to_utf8</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar">gunichar</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2">gunichar2</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#G-UNICHAR-MAX-DECOMPOSITION-LENGTH:CAPS" title="G_UNICHAR_MAX_DECOMPOSITION_LENGTH">G_UNICHAR_MAX_DECOMPOSITION_LENGTH</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType">GUnicodeType</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-COMBINING-MARK:CAPS" title="G_UNICODE_COMBINING_MARK">G_UNICODE_COMBINING_MARK</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType">GUnicodeBreakType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript">GUnicodeScript</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode">GNormalizeMode</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;glib.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.description"></a><h2>Description</h2>
<p>This section describes a number of functions for dealing with
Unicode characters and strings. There are analogues of the
traditional <code class="literal">ctype.h</code> character classification and case conversion
functions, UTF-8 analogues of some string utility functions,
functions to perform normalization, case conversion and collation
on UTF-8 strings and finally functions to convert between the UTF-8,
UTF-16 and UCS-4 encodings of Unicode.</p>
<p>The implementations of the Unicode functions in GLib are based
on the Unicode Character Data tables, which are available from
<a class="ulink" href="http://www.unicode.org/" target="_top">www.unicode.org</a>.
GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1,
GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1,
GLib 2.30 supports Unicode 6.0.</p>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="g-unichar-validate"></a><h3>g_unichar_validate ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_validate (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>ch</code></em>
is a valid Unicode character. Some possible
integer values of <em class="parameter"><code>ch</code></em>
will not be valid. 0 is considered a valid
character, though it's normally a string terminator.</p>
<div class="refsect3">
<a name="g-unichar-validate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-validate.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>ch</code></em>
is a valid Unicode character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isalnum"></a><h3>g_unichar_isalnum ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isalnum (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is alphanumeric.
Given some UTF-8 text, obtain a character value
with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-isalnum.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isalnum.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is an alphanumeric character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isalpha"></a><h3>g_unichar_isalpha ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isalpha (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is alphabetic (i.e. a letter).
Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-isalpha.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isalpha.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is an alphabetic character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-iscntrl"></a><h3>g_unichar_iscntrl ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_iscntrl (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is a control character.
Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-iscntrl.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-iscntrl.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a control character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isdefined"></a><h3>g_unichar_isdefined ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isdefined (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a given character is assigned in the Unicode
standard.</p>
<div class="refsect3">
<a name="g-unichar-isdefined.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isdefined.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character has an assigned value</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isdigit"></a><h3>g_unichar_isdigit ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isdigit (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is numeric (i.e. a digit). This
covers ASCII 0-9 and also digits in other languages/scripts. Given
some UTF-8 text, obtain a character value with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-isdigit.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isdigit.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a digit</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isgraph"></a><h3>g_unichar_isgraph ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isgraph (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is printable and not a space
(returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> for control characters, format characters, and
spaces). <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isprint" title="g_unichar_isprint ()"><code class="function">g_unichar_isprint()</code></a> is similar, but returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for
spaces. Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-isgraph.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isgraph.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is printable unless it's a space</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-islower"></a><h3>g_unichar_islower ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_islower (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is a lowercase letter.
Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-islower.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-islower.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a lowercase letter</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-ismark"></a><h3>g_unichar_ismark ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_ismark (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is a mark (non-spacing mark,
combining mark, or enclosing mark in Unicode speak).
Given some UTF-8 text, obtain a character value
with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<p>Note: in most cases where isalpha characters are allowed,
ismark characters should be allowed to as they are essential
for writing most European languages as well as many non-Latin
scripts.</p>
<div class="refsect3">
<a name="g-unichar-ismark.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-ismark.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a mark character</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-14.html#api-index-2.14">2.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isprint"></a><h3>g_unichar_isprint ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isprint (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is printable.
Unlike <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isgraph" title="g_unichar_isgraph ()"><code class="function">g_unichar_isgraph()</code></a>, returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for spaces.
Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-isprint.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isprint.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is printable</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-ispunct"></a><h3>g_unichar_ispunct ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_ispunct (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is punctuation or a symbol.
Given some UTF-8 text, obtain a character value with
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-ispunct.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-ispunct.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a punctuation or symbol character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isspace"></a><h3>g_unichar_isspace ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isspace (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines whether a character is a space, tab, or line separator
(newline, carriage return, etc.). Given some UTF-8 text, obtain a
character value with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
<p>(Note: don't use this to do word breaking; you have to use
Pango or equivalent to get word breaking right, the algorithm
is fairly complex.)</p>
<div class="refsect3">
<a name="g-unichar-isspace.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isspace.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is a space character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-istitle"></a><h3>g_unichar_istitle ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_istitle (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a character is titlecase. Some characters in
Unicode which are composites, such as the DZ digraph
have three case variants instead of just two. The titlecase
form is used at the beginning of a word where only the
first letter is capitalized. The titlecase form of the DZ
digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z.</p>
<div class="refsect3">
<a name="g-unichar-istitle.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-istitle.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is titlecase</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isupper"></a><h3>g_unichar_isupper ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isupper (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a character is uppercase.</p>
<div class="refsect3">
<a name="g-unichar-isupper.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isupper.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em>
is an uppercase character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-isxdigit"></a><h3>g_unichar_isxdigit ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_isxdigit (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a character is a hexidecimal digit.</p>
<div class="refsect3">
<a name="g-unichar-isxdigit.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-isxdigit.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is a hexadecimal digit</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-iswide"></a><h3>g_unichar_iswide ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_iswide (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a character is typically rendered in a double-width
cell.</p>
<div class="refsect3">
<a name="g-unichar-iswide.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-iswide.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is wide</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-iswide-cjk"></a><h3>g_unichar_iswide_cjk ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_iswide_cjk (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a character is typically rendered in a double-width
cell under legacy East Asian locales. If a character is wide according to
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a>, then it is also reported wide with this function, but
the converse is not necessarily true. See the
<a class="ulink" href="http://www.unicode.org/reports/tr11/" target="_top">Unicode Standard Annex <span class="type">11</span></a>
for details.</p>
<p>If a character passes the <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a> test then it will also pass
this test, but not the other way around. Note that some characters may
pass both this test and <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iszerowidth" title="g_unichar_iszerowidth ()"><code class="function">g_unichar_iszerowidth()</code></a>.</p>
<div class="refsect3">
<a name="g-unichar-iswide-cjk.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-iswide-cjk.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is wide in legacy East Asian locales</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-12.html#api-index-2.12">2.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-iszerowidth"></a><h3>g_unichar_iszerowidth ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_iszerowidth (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines if a given character typically takes zero width when rendered.
The return value is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for all non-spacing and enclosing marks
(e.g., combining accents), format characters, zero-width
space, but not U+00AD SOFT HYPHEN.</p>
<p>A typical use of this function is with one of <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a> or
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide-cjk" title="g_unichar_iswide_cjk ()"><code class="function">g_unichar_iswide_cjk()</code></a> to determine the number of cells a string occupies
when displayed on a grid display (terminals). However, note that not all
terminals support zero-width rendering of zero-width marks.</p>
<div class="refsect3">
<a name="g-unichar-iszerowidth.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-iszerowidth.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character has zero width</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-14.html#api-index-2.14">2.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-toupper"></a><h3>g_unichar_toupper ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
g_unichar_toupper (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Converts a character to uppercase.</p>
<div class="refsect3">
<a name="g-unichar-toupper.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-toupper.returns"></a><h4>Returns</h4>
<p> the result of converting <em class="parameter"><code>c</code></em>
to uppercase.
If <em class="parameter"><code>c</code></em>
is not an lowercase or titlecase character,
or has no upper case equivalent <em class="parameter"><code>c</code></em>
is returned unchanged.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-tolower"></a><h3>g_unichar_tolower ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
g_unichar_tolower (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Converts a character to lower case.</p>
<div class="refsect3">
<a name="g-unichar-tolower.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-tolower.returns"></a><h4>Returns</h4>
<p> the result of converting <em class="parameter"><code>c</code></em>
to lower case.
If <em class="parameter"><code>c</code></em>
is not an upperlower or titlecase character,
or has no lowercase equivalent <em class="parameter"><code>c</code></em>
is returned unchanged.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-totitle"></a><h3>g_unichar_totitle ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
g_unichar_totitle (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Converts a character to the titlecase.</p>
<div class="refsect3">
<a name="g-unichar-totitle.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-totitle.returns"></a><h4>Returns</h4>
<p> the result of converting <em class="parameter"><code>c</code></em>
to titlecase.
If <em class="parameter"><code>c</code></em>
is not an uppercase or lowercase character,
<em class="parameter"><code>c</code></em>
is returned unchanged.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-digit-value"></a><h3>g_unichar_digit_value ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
g_unichar_digit_value (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines the numeric value of a character as a decimal
digit.</p>
<div class="refsect3">
<a name="g-unichar-digit-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-digit-value.returns"></a><h4>Returns</h4>
<p> If <em class="parameter"><code>c</code></em>
is a decimal digit (according to
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdigit" title="g_unichar_isdigit ()"><code class="function">g_unichar_isdigit()</code></a>), its numeric value. Otherwise, -1.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-xdigit-value"></a><h3>g_unichar_xdigit_value ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
g_unichar_xdigit_value (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines the numeric value of a character as a hexidecimal
digit.</p>
<div class="refsect3">
<a name="g-unichar-xdigit-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-xdigit-value.returns"></a><h4>Returns</h4>
<p> If <em class="parameter"><code>c</code></em>
is a hex digit (according to
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isxdigit" title="g_unichar_isxdigit ()"><code class="function">g_unichar_isxdigit()</code></a>), its numeric value. Otherwise, -1.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-compose"></a><h3>g_unichar_compose ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_compose (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> a</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> b</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *ch</code></em>);</pre>
<p>Performs a single composition step of the
Unicode canonical composition algorithm.</p>
<p>This function includes algorithmic Hangul Jamo composition,
but it is not exactly the inverse of <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-decompose" title="g_unichar_decompose ()"><code class="function">g_unichar_decompose()</code></a>.
No composition can have either of <em class="parameter"><code>a</code></em>
or <em class="parameter"><code>b</code></em>
equal to zero.
To be precise, this function composes if and only if
there exists a Primary Composite P which is canonically
equivalent to the sequence &lt;<em class="parameter"><code>a</code></em>
,<em class="parameter"><code>b</code></em>
&gt;. See the Unicode
Standard for the definition of Primary Composite.</p>
<p>If <em class="parameter"><code>a</code></em>
and <em class="parameter"><code>b</code></em>
do not compose a new character, <em class="parameter"><code>ch</code></em>
is set to zero.</p>
<p>See
<a class="ulink" href="http://unicode.org/reports/tr15/" target="_top">UAX<span class="type">15</span></a>
for details.</p>
<div class="refsect3">
<a name="g-unichar-compose.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>return location for the composed character</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-compose.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the characters could be composed</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-decompose"></a><h3>g_unichar_decompose ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_decompose (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *b</code></em>);</pre>
<p>Performs a single decomposition step of the
Unicode canonical decomposition algorithm.</p>
<p>This function does not include compatibility
decompositions. It does, however, include algorithmic
Hangul Jamo decomposition, as well as 'singleton'
decompositions which replace a character by a single
other character. In the case of singletons *<em class="parameter"><code>b</code></em>
will
be set to zero.</p>
<p>If <em class="parameter"><code>ch</code></em>
is not decomposable, *<em class="parameter"><code>a</code></em>
is set to <em class="parameter"><code>ch</code></em>
and *<em class="parameter"><code>b</code></em>
is set to zero.</p>
<p>Note that the way Unicode decomposition pairs are
defined, it is guaranteed that <em class="parameter"><code>b</code></em>
would not decompose
further, but <em class="parameter"><code>a</code></em>
may itself decompose. To get the full
canonical decomposition for <em class="parameter"><code>ch</code></em>
, one would need to
recursively call this function on <em class="parameter"><code>a</code></em>
. Or use
<a class="link" href="glib-Unicode-Manipulation.html#g-unichar-fully-decompose" title="g_unichar_fully_decompose ()"><code class="function">g_unichar_fully_decompose()</code></a>.</p>
<p>See
<a class="ulink" href="http://unicode.org/reports/tr15/" target="_top">UAX<span class="type">15</span></a>
for details.</p>
<div class="refsect3">
<a name="g-unichar-decompose.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>return location for the first component of <em class="parameter"><code>ch</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>return location for the second component of <em class="parameter"><code>ch</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-decompose.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character could be decomposed</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-fully-decompose"></a><h3>g_unichar_fully_decompose ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a>
g_unichar_fully_decompose (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> compat</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *result</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> result_len</code></em>);</pre>
<p>Computes the canonical or compatibility decomposition of a
Unicode character. For compatibility decomposition,
pass <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for <em class="parameter"><code>compat</code></em>
; for canonical decomposition
pass <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> for <em class="parameter"><code>compat</code></em>
.</p>
<p>The decomposed sequence is placed in <em class="parameter"><code>result</code></em>
. Only up to
<em class="parameter"><code>result_len</code></em>
characters are written into <em class="parameter"><code>result</code></em>
. The length
of the full decomposition (irrespective of <em class="parameter"><code>result_len</code></em>
) is
returned by the function. For canonical decomposition,
currently all decompositions are of length at most 4, but
this may change in the future (very unlikely though).
At any rate, Unicode does guarantee that a buffer of length
18 is always enough for both compatibility and canonical
decompositions, so that is the size recommended. This is provided
as <a class="link" href="glib-Unicode-Manipulation.html#G-UNICHAR-MAX-DECOMPOSITION-LENGTH:CAPS" title="G_UNICHAR_MAX_DECOMPOSITION_LENGTH"><code class="literal">G_UNICHAR_MAX_DECOMPOSITION_LENGTH</code></a>.</p>
<p>See
<a class="ulink" href="http://unicode.org/reports/tr15/" target="_top">UAX<span class="type">15</span></a>
for details.</p>
<div class="refsect3">
<a name="g-unichar-fully-decompose.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>compat</p></td>
<td class="parameter_description"><p>whether perform canonical or compatibility decomposition</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p> location to store decomposed result, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>result_len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>result</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-fully-decompose.returns"></a><h4>Returns</h4>
<p> the length of the full decomposition.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-type"></a><h3>g_unichar_type ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a>
g_unichar_type (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Classifies a Unicode character by type.</p>
<div class="refsect3">
<a name="g-unichar-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-type.returns"></a><h4>Returns</h4>
<p> the type of the character.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-break-type"></a><h3>g_unichar_break_type ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType"><span class="returnvalue">GUnicodeBreakType</span></a>
g_unichar_break_type (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Determines the break type of <em class="parameter"><code>c</code></em>
. <em class="parameter"><code>c</code></em>
should be a Unicode character
(to derive a character from UTF-8 encoded text, use
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>). The break type is used to find word and line
breaks ("text boundaries"), Pango implements the Unicode boundary
resolution algorithms and normally you would use a function such
as <a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Text-Processing.html#pango-break"><code class="function">pango_break()</code></a> instead of caring about break types yourself.</p>
<div class="refsect3">
<a name="g-unichar-break-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-break-type.returns"></a><h4>Returns</h4>
<p> the break type of <em class="parameter"><code>c</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-combining-class"></a><h3>g_unichar_combining_class ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
g_unichar_combining_class (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> uc</code></em>);</pre>
<p>Determines the canonical combining class of a Unicode character.</p>
<div class="refsect3">
<a name="g-unichar-combining-class.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>uc</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-combining-class.returns"></a><h4>Returns</h4>
<p> the combining class of the character</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-14.html#api-index-2.14">2.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unicode-canonical-ordering"></a><h3>g_unicode_canonical_ordering ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
g_unicode_canonical_ordering (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *string</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> len</code></em>);</pre>
<p>Computes the canonical ordering of a string in-place.
This rearranges decomposed characters in the string
according to their combining classes. See the Unicode
manual for more information.</p>
<div class="refsect3">
<a name="g-unicode-canonical-ordering.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>string</p></td>
<td class="parameter_description"><p>a UCS-4 encoded string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>string</code></em>
to use.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unicode-canonical-decomposition"></a><h3>g_unicode_canonical_decomposition ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
g_unicode_canonical_decomposition (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> *result_len</code></em>);</pre>
<div class="warning">
<p><code class="literal">g_unicode_canonical_decomposition</code> has been deprecated since version 2.30 and should not be used in newly-written code.</p>
<p>Use the more flexible <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-fully-decompose" title="g_unichar_fully_decompose ()"><code class="function">g_unichar_fully_decompose()</code></a>
instead.</p>
</div>
<p>Computes the canonical decomposition of a Unicode character.</p>
<div class="refsect3">
<a name="g-unicode-canonical-decomposition.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result_len</p></td>
<td class="parameter_description"><p>location to store the length of the return value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unicode-canonical-decomposition.returns"></a><h4>Returns</h4>
<p> a newly allocated string of Unicode characters.
<em class="parameter"><code>result_len</code></em>
is set to the resulting length of the string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-get-mirror-char"></a><h3>g_unichar_get_mirror_char ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_unichar_get_mirror_char (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *mirrored_ch</code></em>);</pre>
<p>In Unicode, some characters are "mirrored". This means that their
images are mirrored horizontally in text that is laid out from right
to left. For instance, "(" would become its mirror image, ")", in
right-to-left text.</p>
<p>If <em class="parameter"><code>ch</code></em>
has the Unicode mirrored property and there is another unicode
character that typically has a glyph that is the mirror image of <em class="parameter"><code>ch</code></em>
's
glyph and <em class="parameter"><code>mirrored_ch</code></em>
is set, it puts that character in the address
pointed to by <em class="parameter"><code>mirrored_ch</code></em>
. Otherwise the original character is put.</p>
<div class="refsect3">
<a name="g-unichar-get-mirror-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mirrored_ch</p></td>
<td class="parameter_description"><p>location to store the mirrored character</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-get-mirror-char.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>ch</code></em>
has a mirrored character, <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-4.html#api-index-2.4">2.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-get-script"></a><h3>g_unichar_get_script ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
g_unichar_get_script (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> ch</code></em>);</pre>
<p>Looks up the <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> for a particular character (as defined
by Unicode Standard Annex #24). No check is made for <em class="parameter"><code>ch</code></em>
being a
valid Unicode character; if you pass in invalid character, the
result is undefined.</p>
<p>This function is equivalent to <a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html#pango-script-for-unichar"><code class="function">pango_script_for_unichar()</code></a> and the
two are interchangeable.</p>
<div class="refsect3">
<a name="g-unichar-get-script.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ch</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-get-script.returns"></a><h4>Returns</h4>
<p> the <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> for the character.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-14.html#api-index-2.14">2.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unicode-script-from-iso15924"></a><h3>g_unicode_script_from_iso15924 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
g_unicode_script_from_iso15924 (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> iso15924</code></em>);</pre>
<p>Looks up the Unicode script for <em class="parameter"><code>iso15924</code></em>
. ISO 15924 assigns four-letter
codes to scripts. For example, the code for Arabic is 'Arab'.
This function accepts four letter codes encoded as a <em class="parameter"><code>guint32</code></em>
in a
big-endian fashion. That is, the code expected for Arabic is
0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc).</p>
<p>See
<a class="ulink" href="http://unicode.org/iso15924/codelists.html" target="_top">Codes for the representation of names of scripts</a>
for details.</p>
<div class="refsect3">
<a name="g-unicode-script-from-iso15924.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>iso15924</p></td>
<td class="parameter_description"><p>a Unicode script</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unicode-script-from-iso15924.returns"></a><h4>Returns</h4>
<p> the Unicode script for <em class="parameter"><code>iso15924</code></em>
, or
of <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-SCRIPT-INVALID-CODE:CAPS"><code class="literal">G_UNICODE_SCRIPT_INVALID_CODE</code></a> if <em class="parameter"><code>iso15924</code></em>
is zero and
<a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-SCRIPT-UNKNOWN:CAPS"><code class="literal">G_UNICODE_SCRIPT_UNKNOWN</code></a> if <em class="parameter"><code>iso15924</code></em>
is unknown.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-unicode-script-to-iso15924"></a><h3>g_unicode_script_to_iso15924 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>
g_unicode_script_to_iso15924 (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> script</code></em>);</pre>
<p>Looks up the ISO 15924 code for <em class="parameter"><code>script</code></em>
. ISO 15924 assigns four-letter
codes to scripts. For example, the code for Arabic is 'Arab'. The
four letter codes are encoded as a <em class="parameter"><code>guint32</code></em>
by this function in a
big-endian fashion. That is, the code returned for Arabic is
0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc).</p>
<p>See
<a class="ulink" href="http://unicode.org/iso15924/codelists.html" target="_top">Codes for the representation of names of scripts</a>
for details.</p>
<div class="refsect3">
<a name="g-unicode-script-to-iso15924.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>script</p></td>
<td class="parameter_description"><p>a Unicode script</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unicode-script-to-iso15924.returns"></a><h4>Returns</h4>
<p> the ISO 15924 code for <em class="parameter"><code>script</code></em>
, encoded as an integer,
of zero if <em class="parameter"><code>script</code></em>
is <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-SCRIPT-INVALID-CODE:CAPS"><code class="literal">G_UNICODE_SCRIPT_INVALID_CODE</code></a> or
ISO 15924 code 'Zzzz' (script code for UNKNOWN) if <em class="parameter"><code>script</code></em>
is not understood.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-next-char"></a><h3>g_utf8_next_char()</h3>
<pre class="programlisting">#define g_utf8_next_char(p)</pre>
<p>Skips to the next character in a UTF-8 string. The string must be
valid; this macro is as fast as possible, and has no error-checking.
You would use this macro to iterate over a string character by
character. The macro returns the start of the next UTF-8 character.
Before using this macro, use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> to validate strings
that may contain invalid UTF-8.</p>
<div class="refsect3">
<a name="g-utf8-next-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>Pointer to the start of a valid UTF-8 character</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-get-char"></a><h3>g_utf8_get_char ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
g_utf8_get_char (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>);</pre>
<p>Converts a sequence of bytes encoded as UTF-8 to a Unicode character.</p>
<p>If <em class="parameter"><code>p</code></em>
does not point to a valid UTF-8 encoded character, results
are undefined. If you are not sure that the bytes are complete
valid Unicode characters, you should use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char-validated" title="g_utf8_get_char_validated ()"><code class="function">g_utf8_get_char_validated()</code></a>
instead.</p>
<div class="refsect3">
<a name="g-utf8-get-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a pointer to Unicode character encoded as UTF-8</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-get-char.returns"></a><h4>Returns</h4>
<p> the resulting character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-get-char-validated"></a><h3>g_utf8_get_char_validated ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>
g_utf8_get_char_validated (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> max_len</code></em>);</pre>
<p>Convert a sequence of bytes encoded as UTF-8 to a Unicode character.
This function checks for incomplete characters, for invalid characters
such as characters that are out of the range of Unicode, and for
overlong encodings of valid characters.</p>
<div class="refsect3">
<a name="g-utf8-get-char-validated.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a pointer to Unicode character encoded as UTF-8</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max_len</p></td>
<td class="parameter_description"><p>the maximum number of bytes to read, or -1, for no maximum or
if <em class="parameter"><code>p</code></em>
is nul-terminated</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-get-char-validated.returns"></a><h4>Returns</h4>
<p> the resulting character. If <em class="parameter"><code>p</code></em>
points to a partial
sequence at the end of a string that could begin a valid
character (or if <em class="parameter"><code>max_len</code></em>
is zero), returns (gunichar)-2;
otherwise, if <em class="parameter"><code>p</code></em>
does not point to a valid UTF-8 encoded
Unicode character, returns (gunichar)-1.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-offset-to-pointer"></a><h3>g_utf8_offset_to_pointer ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_offset_to_pointer (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> offset</code></em>);</pre>
<p>Converts from an integer character offset to a pointer to a position
within the string.</p>
<p>Since 2.10, this function allows to pass a negative <em class="parameter"><code>offset</code></em>
to
step backwards. It is usually worth stepping backwards from the end
instead of forwards if <em class="parameter"><code>offset</code></em>
is in the last fourth of the string,
since moving forward is about 3 times faster than moving backward.</p>
<p>Note that this function doesn't abort when reaching the end of <em class="parameter"><code>str</code></em>
.
Therefore you should be sure that <em class="parameter"><code>offset</code></em>
is within string boundaries
before calling that function. Call <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strlen" title="g_utf8_strlen ()"><code class="function">g_utf8_strlen()</code></a> when unsure.
This limitation exists as this function is called frequently during
text rendering and therefore has to be as fast as possible.</p>
<div class="refsect3">
<a name="g-utf8-offset-to-pointer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>offset</p></td>
<td class="parameter_description"><p>a character offset within <em class="parameter"><code>str</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-offset-to-pointer.returns"></a><h4>Returns</h4>
<p> the resulting pointer</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-pointer-to-offset"></a><h3>g_utf8_pointer_to_offset ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>
g_utf8_pointer_to_offset (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *pos</code></em>);</pre>
<p>Converts from a pointer to position within a string to a integer
character offset.</p>
<p>Since 2.10, this function allows <em class="parameter"><code>pos</code></em>
to be before <em class="parameter"><code>str</code></em>
, and returns
a negative offset in this case.</p>
<div class="refsect3">
<a name="g-utf8-pointer-to-offset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pos</p></td>
<td class="parameter_description"><p>a pointer to a position within <em class="parameter"><code>str</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-pointer-to-offset.returns"></a><h4>Returns</h4>
<p> the resulting character offset</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-prev-char"></a><h3>g_utf8_prev_char ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_prev_char (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>);</pre>
<p>Finds the previous UTF-8 character in the string before <em class="parameter"><code>p</code></em>
.</p>
<p><em class="parameter"><code>p</code></em>
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte. If <em class="parameter"><code>p</code></em>
might be the first
character of the string, you must use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-prev-char" title="g_utf8_find_prev_char ()"><code class="function">g_utf8_find_prev_char()</code></a> instead.</p>
<div class="refsect3">
<a name="g-utf8-prev-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a pointer to a position within a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-prev-char.returns"></a><h4>Returns</h4>
<p> a pointer to the found character</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-find-next-char"></a><h3>g_utf8_find_next_char ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_find_next_char (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *end</code></em>);</pre>
<p>Finds the start of the next UTF-8 character in the string after <em class="parameter"><code>p</code></em>
.</p>
<p><em class="parameter"><code>p</code></em>
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte.</p>
<div class="refsect3">
<a name="g-utf8-find-next-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a pointer to a position within a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>end</p></td>
<td class="parameter_description"><p> a pointer to the byte following the end of the string,
or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to indicate that the string is nul-terminated. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-find-next-char.returns"></a><h4>Returns</h4>
<p> a pointer to the found character or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-find-prev-char"></a><h3>g_utf8_find_prev_char ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_find_prev_char (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>);</pre>
<p>Given a position <em class="parameter"><code>p</code></em>
with a UTF-8 encoded string <em class="parameter"><code>str</code></em>
, find the start
of the previous UTF-8 character starting before <em class="parameter"><code>p</code></em>
. Returns <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if no
UTF-8 characters are present in <em class="parameter"><code>str</code></em>
before <em class="parameter"><code>p</code></em>
.</p>
<p><em class="parameter"><code>p</code></em>
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte.</p>
<div class="refsect3">
<a name="g-utf8-find-prev-char.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>pointer to the beginning of a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>pointer to some position within <em class="parameter"><code>str</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-find-prev-char.returns"></a><h4>Returns</h4>
<p> a pointer to the found character or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strlen"></a><h3>g_utf8_strlen ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>
g_utf8_strlen (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> max</code></em>);</pre>
<p>Computes the length of the string in characters, not including
the terminating nul character. If the <em class="parameter"><code>max</code></em>
'th byte falls in the
middle of a character, the last (partial) character is not counted.</p>
<div class="refsect3">
<a name="g-utf8-strlen.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>pointer to the start of a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max</p></td>
<td class="parameter_description"><p>the maximum number of bytes to examine. If <em class="parameter"><code>max</code></em>
is less than 0, then the string is assumed to be
nul-terminated. If <em class="parameter"><code>max</code></em>
is 0, <em class="parameter"><code>p</code></em>
will not be examined and
may be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. If <em class="parameter"><code>max</code></em>
is greater than 0, up to <em class="parameter"><code>max</code></em>
bytes are examined</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strlen.returns"></a><h4>Returns</h4>
<p> the length of the string in characters</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strncpy"></a><h3>g_utf8_strncpy ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strncpy (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *dest</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *src</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> n</code></em>);</pre>
<p>Like the standard C <code class="function">strncpy()</code> function, but copies a given number
of characters instead of a given number of bytes. The <em class="parameter"><code>src</code></em>
string
must be valid UTF-8 encoded text. (Use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> on all
text before trying to use UTF-8 utility functions with it.)</p>
<div class="refsect3">
<a name="g-utf8-strncpy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dest</p></td>
<td class="parameter_description"><p>buffer to fill with characters from <em class="parameter"><code>src</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n</p></td>
<td class="parameter_description"><p>character count</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strncpy.returns"></a><h4>Returns</h4>
<p> <em class="parameter"><code>dest</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strchr"></a><h3>g_utf8_strchr ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strchr (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Finds the leftmost occurrence of the given Unicode character
in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em>
bytes.
If <em class="parameter"><code>len</code></em>
is -1, allow unbounded search.</p>
<div class="refsect3">
<a name="g-utf8-strchr.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a nul-terminated UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>p</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strchr.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the string does not contain the character,
otherwise, a pointer to the start of the leftmost occurrence
of the character in the string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strrchr"></a><h3>g_utf8_strrchr ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strrchr (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *p</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>);</pre>
<p>Find the rightmost occurrence of the given Unicode character
in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em>
bytes.
If <em class="parameter"><code>len</code></em>
is -1, allow unbounded search.</p>
<div class="refsect3">
<a name="g-utf8-strrchr.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a nul-terminated UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>p</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strrchr.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the string does not contain the character,
otherwise, a pointer to the start of the rightmost occurrence
of the character in the string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strreverse"></a><h3>g_utf8_strreverse ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strreverse (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Reverses a UTF-8 string. <em class="parameter"><code>str</code></em>
must be valid UTF-8 encoded text.
(Use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> on all text before trying to use UTF-8
utility functions with it.)</p>
<p>This function is intended for programmatic uses of reversed strings.
It pays no attention to decomposed characters, combining marks, byte
order marks, directional indicators (LRM, LRO, etc) and similar
characters which might need special handling when reversing a string
for display purposes.</p>
<p>Note that unlike <a class="link" href="glib-String-Utility-Functions.html#g-strreverse" title="g_strreverse ()"><code class="function">g_strreverse()</code></a>, this function returns
newly-allocated memory, which should be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when
no longer needed.</p>
<div class="refsect3">
<a name="g-utf8-strreverse.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>str</code></em>
to use, in bytes. If <em class="parameter"><code>len</code></em>
&lt; 0,
then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strreverse.returns"></a><h4>Returns</h4>
<p> a newly-allocated string which is the reverse of <em class="parameter"><code>str</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-substring"></a><h3>g_utf8_substring ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_substring (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> start_pos</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> end_pos</code></em>);</pre>
<p>Copies a substring out of a UTF-8 encoded string.
The substring will contain <em class="parameter"><code>end_pos</code></em>
- <em class="parameter"><code>start_pos</code></em>
characters.</p>
<div class="refsect3">
<a name="g-utf8-substring.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_pos</p></td>
<td class="parameter_description"><p>a character offset within <em class="parameter"><code>str</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>end_pos</p></td>
<td class="parameter_description"><p>another character offset within <em class="parameter"><code>str</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-substring.returns"></a><h4>Returns</h4>
<p> a newly allocated copy of the requested
substring. Free with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when no longer needed.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-30.html#api-index-2.30">2.30</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-validate"></a><h3>g_utf8_validate ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
g_utf8_validate (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> max_len</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> **end</code></em>);</pre>
<p>Validates UTF-8 encoded text. <em class="parameter"><code>str</code></em>
is the text to validate;
if <em class="parameter"><code>str</code></em>
is nul-terminated, then <em class="parameter"><code>max_len</code></em>
can be -1, otherwise
<em class="parameter"><code>max_len</code></em>
should be the number of bytes to validate.
If <em class="parameter"><code>end</code></em>
is non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then the end of the valid range
will be stored there (i.e. the start of the first invalid
character if some bytes were invalid, or the end of the text
being validated otherwise).</p>
<p>Note that <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> if <em class="parameter"><code>max_len</code></em>
is
positive and any of the <em class="parameter"><code>max_len</code></em>
bytes are nul.</p>
<p>Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if all of <em class="parameter"><code>str</code></em>
was valid. Many GLib and GTK+
routines require valid UTF-8 as input; so data read from a file
or the network should be checked with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> before
doing anything else with it.</p>
<div class="refsect3">
<a name="g-utf8-validate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p> a pointer to character data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=max_len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>max_len</p></td>
<td class="parameter_description"><p>max bytes to validate, or -1 to go until NUL</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>end</p></td>
<td class="parameter_description"><p> return location for end of valid data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-validate.returns"></a><h4>Returns</h4>
<p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the text was valid UTF-8</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strup"></a><h3>g_utf8_strup ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strup (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Converts all Unicode characters in the string that have a case
to uppercase. The exact manner that this is done depends
on the current locale, and may result in the number of
characters in the string increasing. (For instance, the
German ess-zet will be changed to SS.)</p>
<div class="refsect3">
<a name="g-utf8-strup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strup.returns"></a><h4>Returns</h4>
<p> a newly allocated string, with all characters
converted to uppercase. </p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-strdown"></a><h3>g_utf8_strdown ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_strdown (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Converts all Unicode characters in the string that have a case
to lowercase. The exact manner that this is done depends
on the current locale, and may result in the number of
characters in the string changing.</p>
<div class="refsect3">
<a name="g-utf8-strdown.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-strdown.returns"></a><h4>Returns</h4>
<p> a newly allocated string, with all characters
converted to lowercase. </p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-casefold"></a><h3>g_utf8_casefold ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_casefold (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Converts a string into a form that is independent of case. The
result will not correspond to any particular case, but can be
compared for equality or ordered with the results of calling
<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()"><code class="function">g_utf8_casefold()</code></a> on other strings.</p>
<p>Note that calling <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()"><code class="function">g_utf8_casefold()</code></a> followed by <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()"><code class="function">g_utf8_collate()</code></a> is
only an approximation to the correct linguistic case insensitive
ordering, though it is a fairly good one. Getting this exactly
right would require a more sophisticated collation function that
takes case sensitivity into account. GLib does not currently
provide such a function.</p>
<div class="refsect3">
<a name="g-utf8-casefold.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-casefold.returns"></a><h4>Returns</h4>
<p> a newly allocated string, that is a
case independent form of <em class="parameter"><code>str</code></em>
.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-normalize"></a><h3>g_utf8_normalize ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_normalize (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode"><span class="type">GNormalizeMode</span></a> mode</code></em>);</pre>
<p>Converts a string into canonical form, standardizing
such issues as whether a character with an accent
is represented as a base character and combining
accent or as a single precomposed character. The
string has to be valid UTF-8, otherwise <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is
returned. You should generally call <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-normalize" title="g_utf8_normalize ()"><code class="function">g_utf8_normalize()</code></a>
before comparing two Unicode strings.</p>
<p>The normalization mode <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> only
standardizes differences that do not affect the
text content, such as the above-mentioned accent
representation. <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a> also standardizes
the "compatibility" characters in Unicode, such
as SUPERSCRIPT THREE to the standard forms
(in this case DIGIT THREE). Formatting information
may be lost but for most text operations such
characters should be considered the same.</p>
<p><a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></a> and <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></a>
are like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> and <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>,
but returned a result with composed forms rather
than a maximally decomposed form. This is often
useful if you intend to convert the string to
a legacy encoding or pass it to a system with
less capable Unicode handling.</p>
<div class="refsect3">
<a name="g-utf8-normalize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mode</p></td>
<td class="parameter_description"><p>the type of normalization to perform.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-normalize.returns"></a><h4>Returns</h4>
<p> a newly allocated string, that is the
normalized form of <em class="parameter"><code>str</code></em>
, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>str</code></em>
is not
valid UTF-8.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-collate"></a><h3>g_utf8_collate ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
g_utf8_collate (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str1</code></em>,
<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str2</code></em>);</pre>
<p>Compares two strings for ordering using the linguistically
correct rules for the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.
When sorting a large number of strings, it will be significantly
faster to obtain collation keys with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key" title="g_utf8_collate_key ()"><code class="function">g_utf8_collate_key()</code></a> and
compare the keys with <code class="function">strcmp()</code> when sorting instead of sorting
the original strings.</p>
<div class="refsect3">
<a name="g-utf8-collate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str1</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>str2</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-collate.returns"></a><h4>Returns</h4>
<p> &lt; 0 if <em class="parameter"><code>str1</code></em>
compares before <em class="parameter"><code>str2</code></em>
,
0 if they compare equal, &gt; 0 if <em class="parameter"><code>str1</code></em>
compares after <em class="parameter"><code>str2</code></em>
.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-collate-key"></a><h3>g_utf8_collate_key ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_collate_key (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Converts a string into a collation key that can be compared
with other collation keys produced by the same function using
<code class="function">strcmp()</code>. </p>
<p>The results of comparing the collation keys of two strings
with <code class="function">strcmp()</code> will always be the same as comparing the two
original keys with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()"><code class="function">g_utf8_collate()</code></a>.</p>
<p>Note that this function depends on the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
<div class="refsect3">
<a name="g-utf8-collate-key.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-collate-key.returns"></a><h4>Returns</h4>
<p> a newly allocated string. This string should
be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when you are done with it.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-collate-key-for-filename"></a><h3>g_utf8_collate_key_for_filename ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf8_collate_key_for_filename (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="type">gssize</span></a> len</code></em>);</pre>
<p>Converts a string into a collation key that can be compared
with other collation keys produced by the same function using <code class="function">strcmp()</code>. </p>
<p>In order to sort filenames correctly, this function treats the dot '.'
as a special case. Most dictionary orderings seem to consider it
insignificant, thus producing the ordering "event.c" "eventgenerator.c"
"event.h" instead of "event.c" "event.h" "eventgenerator.c". Also, we
would like to treat numbers intelligently so that "file1" "file10" "file5"
is sorted as "file1" "file5" "file10".</p>
<p>Note that this function depends on the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
<div class="refsect3">
<a name="g-utf8-collate-key-for-filename.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
, in bytes, or -1 if <em class="parameter"><code>str</code></em>
is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-collate-key-for-filename.returns"></a><h4>Returns</h4>
<p> a newly allocated string. This string should
be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when you are done with it.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-to-utf16"></a><h3>g_utf8_to_utf16 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *
g_utf8_to_utf16 (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from UTF-8 to UTF-16. A 0 character will be
added to the result after the converted text.</p>
<div class="refsect3">
<a name="g-utf8-to-utf16.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length (number of bytes) of <em class="parameter"><code>str</code></em>
to use.
If <em class="parameter"><code>len</code></em>
&lt; 0, then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will
be returned in case <em class="parameter"><code>str</code></em>
contains a trailing partial character. If
an error occurs then the index of the invalid input is stored here. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a> written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value stored here does not include
the trailing 0. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-to-utf16.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UTF-16 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-to-ucs4"></a><h3>g_utf8_to_ucs4 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
g_utf8_to_ucs4 (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from UTF-8 to a 32-bit fixed width
representation as UCS-4. A trailing 0 character will be added to the
string after the converted text.</p>
<div class="refsect3">
<a name="g-utf8-to-ucs4.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>str</code></em>
to use, in bytes. If <em class="parameter"><code>len</code></em>
&lt; 0,
then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will be
returned in case <em class="parameter"><code>str</code></em>
contains a trailing partial
character. If an error occurs then the index of the
invalid input is stored here. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of characters written or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value here stored does not include
the trailing 0 character. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-to-ucs4.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UCS-4 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf8-to-ucs4-fast"></a><h3>g_utf8_to_ucs4_fast ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
g_utf8_to_ucs4_fast (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>);</pre>
<p>Convert a string from UTF-8 to a 32-bit fixed width
representation as UCS-4, assuming valid UTF-8 input.
This function is roughly twice as fast as <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()"><code class="function">g_utf8_to_ucs4()</code></a>
but does no error checking on the input. A trailing 0 character
will be added to the string after the converted text.</p>
<div class="refsect3">
<a name="g-utf8-to-ucs4-fast.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-8 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length of <em class="parameter"><code>str</code></em>
to use, in bytes. If <em class="parameter"><code>len</code></em>
&lt; 0,
then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store the
number of characters in the result, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf8-to-ucs4-fast.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UCS-4 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf16-to-ucs4"></a><h3>g_utf16_to_ucs4 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *
g_utf16_to_ucs4 (<em class="parameter"><code>const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from UTF-16 to UCS-4. The result will be
nul-terminated.</p>
<div class="refsect3">
<a name="g-utf16-to-ucs4.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-16 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length (number of <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a>) of <em class="parameter"><code>str</code></em>
to use.
If <em class="parameter"><code>len</code></em>
&lt; 0, then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
words read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will
be returned in case <em class="parameter"><code>str</code></em>
contains a trailing partial character. If
an error occurs then the index of the invalid input is stored here. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of characters written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value stored here does not include
the trailing 0 character. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf16-to-ucs4.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UCS-4 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-utf16-to-utf8"></a><h3>g_utf16_to_utf8 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_utf16_to_utf8 (<em class="parameter"><code>const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from UTF-16 to UTF-8. The result will be
terminated with a 0 byte.</p>
<p>Note that the input is expected to be already in native endianness,
an initial byte-order-mark character is not handled specially.
<a class="link" href="glib-Character-Set-Conversion.html#g-convert" title="g_convert ()"><code class="function">g_convert()</code></a> can be used to convert a byte buffer of UTF-16 data of
ambiguous endianess.</p>
<p>Further note that this function does not validate the result
string; it may e.g. include embedded NUL characters. The only
validation done by this function is to ensure that the input can
be correctly interpreted as UTF-16, i.e. it doesn't contain
things unpaired surrogates.</p>
<div class="refsect3">
<a name="g-utf16-to-utf8.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UTF-16 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length (number of <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a>) of <em class="parameter"><code>str</code></em>
to use.
If <em class="parameter"><code>len</code></em>
&lt; 0, then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
words read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will
be returned in case <em class="parameter"><code>str</code></em>
contains a trailing partial character. If
an error occurs then the index of the invalid input is stored here. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of bytes written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value stored here does not include the
trailing 0 byte. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-utf16-to-utf8.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UTF-8 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-ucs4-to-utf16"></a><h3>g_ucs4_to_utf16 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *
g_ucs4_to_utf16 (<em class="parameter"><code>const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from UCS-4 to UTF-16. A 0 character will be
added to the result after the converted text.</p>
<div class="refsect3">
<a name="g-ucs4-to-utf16.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UCS-4 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length (number of characters) of <em class="parameter"><code>str</code></em>
to use.
If <em class="parameter"><code>len</code></em>
&lt; 0, then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. If an error occurs then the index of the invalid
input is stored here. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="type">gunichar2</span></a> written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value stored here does not include
the trailing 0. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-ucs4-to-utf16.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UTF-16 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-ucs4-to-utf8"></a><h3>g_ucs4_to_utf8 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *
g_ucs4_to_utf8 (<em class="parameter"><code>const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> len</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_read</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> *items_written</code></em>,
<em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Convert a string from a 32-bit fixed width representation as UCS-4.
to UTF-8. The result will be terminated with a 0 byte.</p>
<div class="refsect3">
<a name="g-ucs4-to-utf8.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>str</p></td>
<td class="parameter_description"><p>a UCS-4 encoded string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>the maximum length (number of characters) of <em class="parameter"><code>str</code></em>
to use.
If <em class="parameter"><code>len</code></em>
&lt; 0, then the string is nul-terminated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>items_read</p></td>
<td class="parameter_description"><p> location to store number of
characters read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>items_written</p></td>
<td class="parameter_description"><p> location to store number
of bytes written or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value here stored does not include the
trailing 0 byte. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>location to store the error occurring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
<a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-ucs4-to-utf8.returns"></a><h4>Returns</h4>
<p> a pointer to a newly allocated UTF-8 string.
This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an error occurs,
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and <em class="parameter"><code>error</code></em>
set. In that case, <em class="parameter"><code>items_read</code></em>
will be set to the position of the first invalid input character.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="g-unichar-to-utf8"></a><h3>g_unichar_to_utf8 ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint ()"><span class="returnvalue">gint</span></a>
g_unichar_to_utf8 (<em class="parameter"><code><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a> c</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *outbuf</code></em>);</pre>
<p>Converts a single character to UTF-8.</p>
<div class="refsect3">
<a name="g-unichar-to-utf8.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>c</p></td>
<td class="parameter_description"><p>a Unicode character code</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>outbuf</p></td>
<td class="parameter_description"><p> output buffer, must have at
least 6 bytes of space. If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the length will be computed and
returned and nothing will be written to <em class="parameter"><code>outbuf</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="g-unichar-to-utf8.returns"></a><h4>Returns</h4>
<p> number of bytes written</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="gunichar"></a><h3>gunichar</h3>
<pre class="programlisting">typedef guint32 gunichar;
</pre>
<p>A type which can hold any UTF-32 or UCS-4 character code,
also known as a Unicode code point.</p>
<p>If you want to produce the UTF-8 representation of a <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a>,
use <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf8" title="g_ucs4_to_utf8 ()"><code class="function">g_ucs4_to_utf8()</code></a>. See also <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()"><code class="function">g_utf8_to_ucs4()</code></a> for the reverse
process.</p>
<p>To print/scan values of this type as integer, use
<a class="link" href="glib-Basic-Types.html#G-GINT32-MODIFIER:CAPS" title="G_GINT32_MODIFIER"><code class="literal">G_GINT32_MODIFIER</code></a> and/or <a class="link" href="glib-Basic-Types.html#G-GUINT32-FORMAT:CAPS" title="G_GUINT32_FORMAT"><code class="literal">G_GUINT32_FORMAT</code></a>.</p>
<p>The notation to express a Unicode code point in running text is
as a hexadecimal number with four to six digits and uppercase
letters, prefixed by the string "U+". Leading zeros are omitted,
unless the code point would have fewer than four hexadecimal digits.
For example, "U+0041 LATIN CAPITAL LETTER A". To print a code point
in the U+-notation, use the format string "U+%04"G_GINT32_FORMAT"X".
To scan, use the format string "U+%06"G_GINT32_FORMAT"X".</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="usertype">gunichar</span><span class="normal"> c</span><span class="symbol">;</span>
<span class="function">sscanf</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"U+0041"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"U+%06"</span><span class="normal"><a href="glib-Basic-Types.html#G-GINT32-FORMAT:CAPS">G_GINT32_FORMAT</a></span><span class="string">"X"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">amp</span><span class="symbol">;</span><span class="normal">c</span><span class="symbol">)</span>
<span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Read U+%04"</span><span class="normal"><a href="glib-Basic-Types.html#G-GINT32-FORMAT:CAPS">G_GINT32_FORMAT</a></span><span class="string">"X"</span><span class="symbol">,</span><span class="normal"> c</span><span class="symbol">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
</div>
<hr>
<div class="refsect2">
<a name="gunichar2"></a><h3>gunichar2</h3>
<pre class="programlisting">typedef guint16 gunichar2;
</pre>
<p>A type which can hold any UTF-16 code
point&lt;footnote id="utf16_surrogate_pairs"&gt;UTF-16 also has so called
&lt;firstterm&gt;surrogate pairs&lt;/firstterm&gt; to encode characters beyond
the BMP as pairs of 16bit numbers. Surrogate pairs cannot be stored
in a single gunichar2 field, but all GLib functions accepting gunichar2
arrays will correctly interpret surrogate pairs.&lt;/footnote&gt;.</p>
<p>To print/scan values of this type to/from text you need to convert
to/from UTF-8, using <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-utf8" title="g_utf16_to_utf8 ()"><code class="function">g_utf16_to_utf8()</code></a>/<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-utf16" title="g_utf8_to_utf16 ()"><code class="function">g_utf8_to_utf16()</code></a>.</p>
<p>To print/scan values of this type as integer, use
<a class="link" href="glib-Basic-Types.html#G-GINT16-MODIFIER:CAPS" title="G_GINT16_MODIFIER"><code class="literal">G_GINT16_MODIFIER</code></a> and/or <a class="link" href="glib-Basic-Types.html#G-GUINT16-FORMAT:CAPS" title="G_GUINT16_FORMAT"><code class="literal">G_GUINT16_FORMAT</code></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="G-UNICHAR-MAX-DECOMPOSITION-LENGTH:CAPS"></a><h3>G_UNICHAR_MAX_DECOMPOSITION_LENGTH</h3>
<pre class="programlisting">#define G_UNICHAR_MAX_DECOMPOSITION_LENGTH 18 /* codepoints */
</pre>
<p>The maximum length (in codepoints) of a compatibility or canonical
decomposition of a single Unicode character.</p>
<p>This is as defined by Unicode 6.1.</p>
<p class="since">Since: <a class="link" href="api-index-2-32.html#api-index-2.32">2.32</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GUnicodeType"></a><h3>enum GUnicodeType</h3>
<p>These are the possible character classifications from the
Unicode specification.
See &lt;ulink url="http://www.unicode.org/reports/tr44/<span class="type">General_Category_Values</span>"&gt;Unicode Character Database&lt;/unlink&gt;.</p>
<div class="refsect3">
<a name="GUnicodeType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-CONTROL:CAPS"></a>G_UNICODE_CONTROL</p></td>
<td class="enum_member_description">
<p>General category "Other, Control" (Cc)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-FORMAT:CAPS"></a>G_UNICODE_FORMAT</p></td>
<td class="enum_member_description">
<p>General category "Other, Format" (Cf)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-UNASSIGNED:CAPS"></a>G_UNICODE_UNASSIGNED</p></td>
<td class="enum_member_description">
<p>General category "Other, Not Assigned" (Cn)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-PRIVATE-USE:CAPS"></a>G_UNICODE_PRIVATE_USE</p></td>
<td class="enum_member_description">
<p>General category "Other, Private Use" (Co)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SURROGATE:CAPS"></a>G_UNICODE_SURROGATE</p></td>
<td class="enum_member_description">
<p>General category "Other, Surrogate" (Cs)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-LOWERCASE-LETTER:CAPS"></a>G_UNICODE_LOWERCASE_LETTER</p></td>
<td class="enum_member_description">
<p>General category "Letter, Lowercase" (Ll)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-MODIFIER-LETTER:CAPS"></a>G_UNICODE_MODIFIER_LETTER</p></td>
<td class="enum_member_description">
<p>General category "Letter, Modifier" (Lm)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-OTHER-LETTER:CAPS"></a>G_UNICODE_OTHER_LETTER</p></td>
<td class="enum_member_description">
<p>General category "Letter, Other" (Lo)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-TITLECASE-LETTER:CAPS"></a>G_UNICODE_TITLECASE_LETTER</p></td>
<td class="enum_member_description">
<p>General category "Letter, Titlecase" (Lt)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-UPPERCASE-LETTER:CAPS"></a>G_UNICODE_UPPERCASE_LETTER</p></td>
<td class="enum_member_description">
<p>General category "Letter, Uppercase" (Lu)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SPACING-MARK:CAPS"></a>G_UNICODE_SPACING_MARK</p></td>
<td class="enum_member_description">
<p>General category "Mark, Spacing" (Mc)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-ENCLOSING-MARK:CAPS"></a>G_UNICODE_ENCLOSING_MARK</p></td>
<td class="enum_member_description">
<p>General category "Mark, Enclosing" (Me)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-NON-SPACING-MARK:CAPS"></a>G_UNICODE_NON_SPACING_MARK</p></td>
<td class="enum_member_description">
<p>General category "Mark, Nonspacing" (Mn)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-DECIMAL-NUMBER:CAPS"></a>G_UNICODE_DECIMAL_NUMBER</p></td>
<td class="enum_member_description">
<p>General category "Number, Decimal Digit" (Nd)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-LETTER-NUMBER:CAPS"></a>G_UNICODE_LETTER_NUMBER</p></td>
<td class="enum_member_description">
<p>General category "Number, Letter" (Nl)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-OTHER-NUMBER:CAPS"></a>G_UNICODE_OTHER_NUMBER</p></td>
<td class="enum_member_description">
<p>General category "Number, Other" (No)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-CONNECT-PUNCTUATION:CAPS"></a>G_UNICODE_CONNECT_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Connector" (Pc)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-DASH-PUNCTUATION:CAPS"></a>G_UNICODE_DASH_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Dash" (Pd)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-CLOSE-PUNCTUATION:CAPS"></a>G_UNICODE_CLOSE_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Close" (Pe)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-FINAL-PUNCTUATION:CAPS"></a>G_UNICODE_FINAL_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Final quote" (Pf)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-INITIAL-PUNCTUATION:CAPS"></a>G_UNICODE_INITIAL_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Initial quote" (Pi)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-OTHER-PUNCTUATION:CAPS"></a>G_UNICODE_OTHER_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Other" (Po)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-OPEN-PUNCTUATION:CAPS"></a>G_UNICODE_OPEN_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>General category "Punctuation, Open" (Ps)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-CURRENCY-SYMBOL:CAPS"></a>G_UNICODE_CURRENCY_SYMBOL</p></td>
<td class="enum_member_description">
<p>General category "Symbol, Currency" (Sc)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-MODIFIER-SYMBOL:CAPS"></a>G_UNICODE_MODIFIER_SYMBOL</p></td>
<td class="enum_member_description">
<p>General category "Symbol, Modifier" (Sk)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-MATH-SYMBOL:CAPS"></a>G_UNICODE_MATH_SYMBOL</p></td>
<td class="enum_member_description">
<p>General category "Symbol, Math" (Sm)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-OTHER-SYMBOL:CAPS"></a>G_UNICODE_OTHER_SYMBOL</p></td>
<td class="enum_member_description">
<p>General category "Symbol, Other" (So)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-LINE-SEPARATOR:CAPS"></a>G_UNICODE_LINE_SEPARATOR</p></td>
<td class="enum_member_description">
<p>General category "Separator, Line" (Zl)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-PARAGRAPH-SEPARATOR:CAPS"></a>G_UNICODE_PARAGRAPH_SEPARATOR</p></td>
<td class="enum_member_description">
<p>General category "Separator, Paragraph" (Zp)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SPACE-SEPARATOR:CAPS"></a>G_UNICODE_SPACE_SEPARATOR</p></td>
<td class="enum_member_description">
<p>General category "Separator, Space" (Zs)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="G-UNICODE-COMBINING-MARK:CAPS"></a><h3>G_UNICODE_COMBINING_MARK</h3>
<pre class="programlisting">#define G_UNICODE_COMBINING_MARK G_UNICODE_SPACING_MARK
</pre>
<div class="warning">
<p><code class="literal">G_UNICODE_COMBINING_MARK</code> has been deprecated since version 2.30 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-SPACING-MARK:CAPS"><code class="literal">G_UNICODE_SPACING_MARK</code></a>.</p>
</div>
<p>Older name for <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-SPACING-MARK:CAPS"><code class="literal">G_UNICODE_SPACING_MARK</code></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="GUnicodeBreakType"></a><h3>enum GUnicodeBreakType</h3>
<p>These are the possible line break classifications.</p>
<p>Since new unicode versions may add new types here, applications should be ready
to handle unknown values. They may be regarded as <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-BREAK-UNKNOWN:CAPS"><code class="literal">G_UNICODE_BREAK_UNKNOWN</code></a>.</p>
<p>See &lt;ulink url="http://www.unicode.org/unicode/reports/tr14/"&gt;http://www.unicode.org/unicode/reports/tr14/&lt;/ulink&gt;.</p>
<div class="refsect3">
<a name="GUnicodeBreakType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-MANDATORY:CAPS"></a>G_UNICODE_BREAK_MANDATORY</p></td>
<td class="enum_member_description">
<p>Mandatory Break (BK)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-CARRIAGE-RETURN:CAPS"></a>G_UNICODE_BREAK_CARRIAGE_RETURN</p></td>
<td class="enum_member_description">
<p>Carriage Return (CR)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-LINE-FEED:CAPS"></a>G_UNICODE_BREAK_LINE_FEED</p></td>
<td class="enum_member_description">
<p>Line Feed (LF)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-COMBINING-MARK:CAPS"></a>G_UNICODE_BREAK_COMBINING_MARK</p></td>
<td class="enum_member_description">
<p>Attached Characters and Combining Marks (CM)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-SURROGATE:CAPS"></a>G_UNICODE_BREAK_SURROGATE</p></td>
<td class="enum_member_description">
<p>Surrogates (SG)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-ZERO-WIDTH-SPACE:CAPS"></a>G_UNICODE_BREAK_ZERO_WIDTH_SPACE</p></td>
<td class="enum_member_description">
<p>Zero Width Space (ZW)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-INSEPARABLE:CAPS"></a>G_UNICODE_BREAK_INSEPARABLE</p></td>
<td class="enum_member_description">
<p>Inseparable (IN)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-NON-BREAKING-GLUE:CAPS"></a>G_UNICODE_BREAK_NON_BREAKING_GLUE</p></td>
<td class="enum_member_description">
<p>Non-breaking ("Glue") (GL)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-CONTINGENT:CAPS"></a>G_UNICODE_BREAK_CONTINGENT</p></td>
<td class="enum_member_description">
<p>Contingent Break Opportunity (CB)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-SPACE:CAPS"></a>G_UNICODE_BREAK_SPACE</p></td>
<td class="enum_member_description">
<p>Space (SP)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-AFTER:CAPS"></a>G_UNICODE_BREAK_AFTER</p></td>
<td class="enum_member_description">
<p>Break Opportunity After (BA)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-BEFORE:CAPS"></a>G_UNICODE_BREAK_BEFORE</p></td>
<td class="enum_member_description">
<p>Break Opportunity Before (BB)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-BEFORE-AND-AFTER:CAPS"></a>G_UNICODE_BREAK_BEFORE_AND_AFTER</p></td>
<td class="enum_member_description">
<p>Break Opportunity Before and After (B2)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HYPHEN:CAPS"></a>G_UNICODE_BREAK_HYPHEN</p></td>
<td class="enum_member_description">
<p>Hyphen (HY)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-NON-STARTER:CAPS"></a>G_UNICODE_BREAK_NON_STARTER</p></td>
<td class="enum_member_description">
<p>Nonstarter (NS)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-OPEN-PUNCTUATION:CAPS"></a>G_UNICODE_BREAK_OPEN_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>Opening Punctuation (OP)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-CLOSE-PUNCTUATION:CAPS"></a>G_UNICODE_BREAK_CLOSE_PUNCTUATION</p></td>
<td class="enum_member_description">
<p>Closing Punctuation (CL)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-QUOTATION:CAPS"></a>G_UNICODE_BREAK_QUOTATION</p></td>
<td class="enum_member_description">
<p>Ambiguous Quotation (QU)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-EXCLAMATION:CAPS"></a>G_UNICODE_BREAK_EXCLAMATION</p></td>
<td class="enum_member_description">
<p>Exclamation/Interrogation (EX)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-IDEOGRAPHIC:CAPS"></a>G_UNICODE_BREAK_IDEOGRAPHIC</p></td>
<td class="enum_member_description">
<p>Ideographic (ID)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-NUMERIC:CAPS"></a>G_UNICODE_BREAK_NUMERIC</p></td>
<td class="enum_member_description">
<p>Numeric (NU)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-INFIX-SEPARATOR:CAPS"></a>G_UNICODE_BREAK_INFIX_SEPARATOR</p></td>
<td class="enum_member_description">
<p>Infix Separator (Numeric) (IS)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-SYMBOL:CAPS"></a>G_UNICODE_BREAK_SYMBOL</p></td>
<td class="enum_member_description">
<p>Symbols Allowing Break After (SY)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-ALPHABETIC:CAPS"></a>G_UNICODE_BREAK_ALPHABETIC</p></td>
<td class="enum_member_description">
<p>Ordinary Alphabetic and Symbol Characters (AL)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-PREFIX:CAPS"></a>G_UNICODE_BREAK_PREFIX</p></td>
<td class="enum_member_description">
<p>Prefix (Numeric) (PR)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-POSTFIX:CAPS"></a>G_UNICODE_BREAK_POSTFIX</p></td>
<td class="enum_member_description">
<p>Postfix (Numeric) (PO)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-COMPLEX-CONTEXT:CAPS"></a>G_UNICODE_BREAK_COMPLEX_CONTEXT</p></td>
<td class="enum_member_description">
<p>Complex Content Dependent (South East Asian) (SA)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-AMBIGUOUS:CAPS"></a>G_UNICODE_BREAK_AMBIGUOUS</p></td>
<td class="enum_member_description">
<p>Ambiguous (Alphabetic or Ideographic) (AI)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-UNKNOWN:CAPS"></a>G_UNICODE_BREAK_UNKNOWN</p></td>
<td class="enum_member_description">
<p>Unknown (XX)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-NEXT-LINE:CAPS"></a>G_UNICODE_BREAK_NEXT_LINE</p></td>
<td class="enum_member_description">
<p>Next Line (NL)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-WORD-JOINER:CAPS"></a>G_UNICODE_BREAK_WORD_JOINER</p></td>
<td class="enum_member_description">
<p>Word Joiner (WJ)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HANGUL-L-JAMO:CAPS"></a>G_UNICODE_BREAK_HANGUL_L_JAMO</p></td>
<td class="enum_member_description">
<p>Hangul L Jamo (JL)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HANGUL-V-JAMO:CAPS"></a>G_UNICODE_BREAK_HANGUL_V_JAMO</p></td>
<td class="enum_member_description">
<p>Hangul V Jamo (JV)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HANGUL-T-JAMO:CAPS"></a>G_UNICODE_BREAK_HANGUL_T_JAMO</p></td>
<td class="enum_member_description">
<p>Hangul T Jamo (JT)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HANGUL-LV-SYLLABLE:CAPS"></a>G_UNICODE_BREAK_HANGUL_LV_SYLLABLE</p></td>
<td class="enum_member_description">
<p>Hangul LV Syllable (H2)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HANGUL-LVT-SYLLABLE:CAPS"></a>G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE</p></td>
<td class="enum_member_description">
<p>Hangul LVT Syllable (H3)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-CLOSE-PARANTHESIS:CAPS"></a>G_UNICODE_BREAK_CLOSE_PARANTHESIS</p></td>
<td class="enum_member_description">
<p>Closing Parenthesis (CP). Since 2.28</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-CONDITIONAL-JAPANESE-STARTER:CAPS"></a>G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER</p></td>
<td class="enum_member_description">
<p>Conditional Japanese Starter (CJ). Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-HEBREW-LETTER:CAPS"></a>G_UNICODE_BREAK_HEBREW_LETTER</p></td>
<td class="enum_member_description">
<p>Hebrew Letter (HL). Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-BREAK-REGIONAL-INDICATOR:CAPS"></a>G_UNICODE_BREAK_REGIONAL_INDICATOR</p></td>
<td class="enum_member_description">
<p>Regional Indicator (RI). Since: 2.36</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GUnicodeScript"></a><h3>enum GUnicodeScript</h3>
<p>The <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> enumeration identifies different writing
systems. The values correspond to the names as defined in the
Unicode standard. The enumeration has been added in GLib 2.14,
and is interchangeable with <a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html#PangoScript"><span class="type">PangoScript</span></a>.</p>
<p>Note that new types may be added in the future. Applications
should be ready to handle unknown values.
See &lt;ulink
url="http://www.unicode.org/reports/tr24/"&gt;Unicode Standard Annex
<span class="type">24</span>: Script names&lt;/ulink&gt;.</p>
<div class="refsect3">
<a name="GUnicodeScript.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-INVALID-CODE:CAPS"></a>G_UNICODE_SCRIPT_INVALID_CODE</p></td>
<td class="enum_member_description">
<p> a value never returned from <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-script" title="g_unichar_get_script ()"><code class="function">g_unichar_get_script()</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-COMMON:CAPS"></a>G_UNICODE_SCRIPT_COMMON</p></td>
<td class="enum_member_description">
<p>a character used by multiple different scripts</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-INHERITED:CAPS"></a>G_UNICODE_SCRIPT_INHERITED</p></td>
<td class="enum_member_description">
<p>a mark glyph that takes its script from the
base glyph to which it is attached</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ARABIC:CAPS"></a>G_UNICODE_SCRIPT_ARABIC</p></td>
<td class="enum_member_description">
<p>Arabic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ARMENIAN:CAPS"></a>G_UNICODE_SCRIPT_ARMENIAN</p></td>
<td class="enum_member_description">
<p>Armenian</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BENGALI:CAPS"></a>G_UNICODE_SCRIPT_BENGALI</p></td>
<td class="enum_member_description">
<p>Bengali</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BOPOMOFO:CAPS"></a>G_UNICODE_SCRIPT_BOPOMOFO</p></td>
<td class="enum_member_description">
<p>Bopomofo</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CHEROKEE:CAPS"></a>G_UNICODE_SCRIPT_CHEROKEE</p></td>
<td class="enum_member_description">
<p>Cherokee</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-COPTIC:CAPS"></a>G_UNICODE_SCRIPT_COPTIC</p></td>
<td class="enum_member_description">
<p>Coptic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CYRILLIC:CAPS"></a>G_UNICODE_SCRIPT_CYRILLIC</p></td>
<td class="enum_member_description">
<p>Cyrillic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-DESERET:CAPS"></a>G_UNICODE_SCRIPT_DESERET</p></td>
<td class="enum_member_description">
<p>Deseret</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-DEVANAGARI:CAPS"></a>G_UNICODE_SCRIPT_DEVANAGARI</p></td>
<td class="enum_member_description">
<p>Devanagari</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ETHIOPIC:CAPS"></a>G_UNICODE_SCRIPT_ETHIOPIC</p></td>
<td class="enum_member_description">
<p>Ethiopic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GEORGIAN:CAPS"></a>G_UNICODE_SCRIPT_GEORGIAN</p></td>
<td class="enum_member_description">
<p>Georgian</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GOTHIC:CAPS"></a>G_UNICODE_SCRIPT_GOTHIC</p></td>
<td class="enum_member_description">
<p>Gothic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GREEK:CAPS"></a>G_UNICODE_SCRIPT_GREEK</p></td>
<td class="enum_member_description">
<p>Greek</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GUJARATI:CAPS"></a>G_UNICODE_SCRIPT_GUJARATI</p></td>
<td class="enum_member_description">
<p>Gujarati</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GURMUKHI:CAPS"></a>G_UNICODE_SCRIPT_GURMUKHI</p></td>
<td class="enum_member_description">
<p>Gurmukhi</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HAN:CAPS"></a>G_UNICODE_SCRIPT_HAN</p></td>
<td class="enum_member_description">
<p>Han</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HANGUL:CAPS"></a>G_UNICODE_SCRIPT_HANGUL</p></td>
<td class="enum_member_description">
<p>Hangul</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HEBREW:CAPS"></a>G_UNICODE_SCRIPT_HEBREW</p></td>
<td class="enum_member_description">
<p>Hebrew</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HIRAGANA:CAPS"></a>G_UNICODE_SCRIPT_HIRAGANA</p></td>
<td class="enum_member_description">
<p>Hiragana</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KANNADA:CAPS"></a>G_UNICODE_SCRIPT_KANNADA</p></td>
<td class="enum_member_description">
<p>Kannada</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KATAKANA:CAPS"></a>G_UNICODE_SCRIPT_KATAKANA</p></td>
<td class="enum_member_description">
<p>Katakana</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KHMER:CAPS"></a>G_UNICODE_SCRIPT_KHMER</p></td>
<td class="enum_member_description">
<p>Khmer</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LAO:CAPS"></a>G_UNICODE_SCRIPT_LAO</p></td>
<td class="enum_member_description">
<p>Lao</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LATIN:CAPS"></a>G_UNICODE_SCRIPT_LATIN</p></td>
<td class="enum_member_description">
<p>Latin</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MALAYALAM:CAPS"></a>G_UNICODE_SCRIPT_MALAYALAM</p></td>
<td class="enum_member_description">
<p>Malayalam</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MONGOLIAN:CAPS"></a>G_UNICODE_SCRIPT_MONGOLIAN</p></td>
<td class="enum_member_description">
<p>Mongolian</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MYANMAR:CAPS"></a>G_UNICODE_SCRIPT_MYANMAR</p></td>
<td class="enum_member_description">
<p>Myanmar</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OGHAM:CAPS"></a>G_UNICODE_SCRIPT_OGHAM</p></td>
<td class="enum_member_description">
<p>Ogham</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-ITALIC:CAPS"></a>G_UNICODE_SCRIPT_OLD_ITALIC</p></td>
<td class="enum_member_description">
<p>Old Italic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ORIYA:CAPS"></a>G_UNICODE_SCRIPT_ORIYA</p></td>
<td class="enum_member_description">
<p>Oriya</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-RUNIC:CAPS"></a>G_UNICODE_SCRIPT_RUNIC</p></td>
<td class="enum_member_description">
<p>Runic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SINHALA:CAPS"></a>G_UNICODE_SCRIPT_SINHALA</p></td>
<td class="enum_member_description">
<p>Sinhala</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SYRIAC:CAPS"></a>G_UNICODE_SCRIPT_SYRIAC</p></td>
<td class="enum_member_description">
<p>Syriac</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAMIL:CAPS"></a>G_UNICODE_SCRIPT_TAMIL</p></td>
<td class="enum_member_description">
<p>Tamil</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TELUGU:CAPS"></a>G_UNICODE_SCRIPT_TELUGU</p></td>
<td class="enum_member_description">
<p>Telugu</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-THAANA:CAPS"></a>G_UNICODE_SCRIPT_THAANA</p></td>
<td class="enum_member_description">
<p>Thaana</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-THAI:CAPS"></a>G_UNICODE_SCRIPT_THAI</p></td>
<td class="enum_member_description">
<p>Thai</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TIBETAN:CAPS"></a>G_UNICODE_SCRIPT_TIBETAN</p></td>
<td class="enum_member_description">
<p>Tibetan</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CANADIAN-ABORIGINAL:CAPS"></a>G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL</p></td>
<td class="enum_member_description">
<p> Canadian Aboriginal</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-YI:CAPS"></a>G_UNICODE_SCRIPT_YI</p></td>
<td class="enum_member_description">
<p>Yi</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAGALOG:CAPS"></a>G_UNICODE_SCRIPT_TAGALOG</p></td>
<td class="enum_member_description">
<p>Tagalog</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HANUNOO:CAPS"></a>G_UNICODE_SCRIPT_HANUNOO</p></td>
<td class="enum_member_description">
<p>Hanunoo</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BUHID:CAPS"></a>G_UNICODE_SCRIPT_BUHID</p></td>
<td class="enum_member_description">
<p>Buhid</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAGBANWA:CAPS"></a>G_UNICODE_SCRIPT_TAGBANWA</p></td>
<td class="enum_member_description">
<p>Tagbanwa</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BRAILLE:CAPS"></a>G_UNICODE_SCRIPT_BRAILLE</p></td>
<td class="enum_member_description">
<p>Braille</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CYPRIOT:CAPS"></a>G_UNICODE_SCRIPT_CYPRIOT</p></td>
<td class="enum_member_description">
<p>Cypriot</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LIMBU:CAPS"></a>G_UNICODE_SCRIPT_LIMBU</p></td>
<td class="enum_member_description">
<p>Limbu</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OSMANYA:CAPS"></a>G_UNICODE_SCRIPT_OSMANYA</p></td>
<td class="enum_member_description">
<p>Osmanya</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SHAVIAN:CAPS"></a>G_UNICODE_SCRIPT_SHAVIAN</p></td>
<td class="enum_member_description">
<p>Shavian</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LINEAR-B:CAPS"></a>G_UNICODE_SCRIPT_LINEAR_B</p></td>
<td class="enum_member_description">
<p>Linear B</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAI-LE:CAPS"></a>G_UNICODE_SCRIPT_TAI_LE</p></td>
<td class="enum_member_description">
<p>Tai Le</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-UGARITIC:CAPS"></a>G_UNICODE_SCRIPT_UGARITIC</p></td>
<td class="enum_member_description">
<p>Ugaritic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-NEW-TAI-LUE:CAPS"></a>G_UNICODE_SCRIPT_NEW_TAI_LUE</p></td>
<td class="enum_member_description">
<p> New Tai Lue</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BUGINESE:CAPS"></a>G_UNICODE_SCRIPT_BUGINESE</p></td>
<td class="enum_member_description">
<p>Buginese</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GLAGOLITIC:CAPS"></a>G_UNICODE_SCRIPT_GLAGOLITIC</p></td>
<td class="enum_member_description">
<p>Glagolitic</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TIFINAGH:CAPS"></a>G_UNICODE_SCRIPT_TIFINAGH</p></td>
<td class="enum_member_description">
<p>Tifinagh</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SYLOTI-NAGRI:CAPS"></a>G_UNICODE_SCRIPT_SYLOTI_NAGRI</p></td>
<td class="enum_member_description">
<p> Syloti Nagri</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-PERSIAN:CAPS"></a>G_UNICODE_SCRIPT_OLD_PERSIAN</p></td>
<td class="enum_member_description">
<p> Old Persian</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KHAROSHTHI:CAPS"></a>G_UNICODE_SCRIPT_KHAROSHTHI</p></td>
<td class="enum_member_description">
<p>Kharoshthi</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-UNKNOWN:CAPS"></a>G_UNICODE_SCRIPT_UNKNOWN</p></td>
<td class="enum_member_description">
<p>an unassigned code point</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BALINESE:CAPS"></a>G_UNICODE_SCRIPT_BALINESE</p></td>
<td class="enum_member_description">
<p>Balinese</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CUNEIFORM:CAPS"></a>G_UNICODE_SCRIPT_CUNEIFORM</p></td>
<td class="enum_member_description">
<p>Cuneiform</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PHOENICIAN:CAPS"></a>G_UNICODE_SCRIPT_PHOENICIAN</p></td>
<td class="enum_member_description">
<p>Phoenician</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PHAGS-PA:CAPS"></a>G_UNICODE_SCRIPT_PHAGS_PA</p></td>
<td class="enum_member_description">
<p>Phags-pa</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-NKO:CAPS"></a>G_UNICODE_SCRIPT_NKO</p></td>
<td class="enum_member_description">
<p>N'Ko</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KAYAH-LI:CAPS"></a>G_UNICODE_SCRIPT_KAYAH_LI</p></td>
<td class="enum_member_description">
<p>Kayah Li. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LEPCHA:CAPS"></a>G_UNICODE_SCRIPT_LEPCHA</p></td>
<td class="enum_member_description">
<p>Lepcha. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-REJANG:CAPS"></a>G_UNICODE_SCRIPT_REJANG</p></td>
<td class="enum_member_description">
<p>Rejang. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SUNDANESE:CAPS"></a>G_UNICODE_SCRIPT_SUNDANESE</p></td>
<td class="enum_member_description">
<p>Sundanese. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SAURASHTRA:CAPS"></a>G_UNICODE_SCRIPT_SAURASHTRA</p></td>
<td class="enum_member_description">
<p>Saurashtra. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CHAM:CAPS"></a>G_UNICODE_SCRIPT_CHAM</p></td>
<td class="enum_member_description">
<p>Cham. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OL-CHIKI:CAPS"></a>G_UNICODE_SCRIPT_OL_CHIKI</p></td>
<td class="enum_member_description">
<p>Ol Chiki. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-VAI:CAPS"></a>G_UNICODE_SCRIPT_VAI</p></td>
<td class="enum_member_description">
<p>Vai. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CARIAN:CAPS"></a>G_UNICODE_SCRIPT_CARIAN</p></td>
<td class="enum_member_description">
<p>Carian. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LYCIAN:CAPS"></a>G_UNICODE_SCRIPT_LYCIAN</p></td>
<td class="enum_member_description">
<p>Lycian. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LYDIAN:CAPS"></a>G_UNICODE_SCRIPT_LYDIAN</p></td>
<td class="enum_member_description">
<p>Lydian. Since 2.16.3</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-AVESTAN:CAPS"></a>G_UNICODE_SCRIPT_AVESTAN</p></td>
<td class="enum_member_description">
<p>Avestan. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BAMUM:CAPS"></a>G_UNICODE_SCRIPT_BAMUM</p></td>
<td class="enum_member_description">
<p>Bamum. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-EGYPTIAN-HIEROGLYPHS:CAPS"></a>G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS</p></td>
<td class="enum_member_description">
<p> Egyptian Hieroglpyhs. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-IMPERIAL-ARAMAIC:CAPS"></a>G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC</p></td>
<td class="enum_member_description">
<p> Imperial Aramaic. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-INSCRIPTIONAL-PAHLAVI:CAPS"></a>G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI</p></td>
<td class="enum_member_description">
<p> Inscriptional Pahlavi. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-INSCRIPTIONAL-PARTHIAN:CAPS"></a>G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN</p></td>
<td class="enum_member_description">
<p> Inscriptional Parthian. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-JAVANESE:CAPS"></a>G_UNICODE_SCRIPT_JAVANESE</p></td>
<td class="enum_member_description">
<p>Javanese. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KAITHI:CAPS"></a>G_UNICODE_SCRIPT_KAITHI</p></td>
<td class="enum_member_description">
<p>Kaithi. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LISU:CAPS"></a>G_UNICODE_SCRIPT_LISU</p></td>
<td class="enum_member_description">
<p>Lisu. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MEETEI-MAYEK:CAPS"></a>G_UNICODE_SCRIPT_MEETEI_MAYEK</p></td>
<td class="enum_member_description">
<p> Meetei Mayek. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-SOUTH-ARABIAN:CAPS"></a>G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN</p></td>
<td class="enum_member_description">
<p> Old South Arabian. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-TURKIC:CAPS"></a>G_UNICODE_SCRIPT_OLD_TURKIC</p></td>
<td class="enum_member_description">
<p>Old Turkic. Since 2.28</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SAMARITAN:CAPS"></a>G_UNICODE_SCRIPT_SAMARITAN</p></td>
<td class="enum_member_description">
<p>Samaritan. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAI-THAM:CAPS"></a>G_UNICODE_SCRIPT_TAI_THAM</p></td>
<td class="enum_member_description">
<p>Tai Tham. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAI-VIET:CAPS"></a>G_UNICODE_SCRIPT_TAI_VIET</p></td>
<td class="enum_member_description">
<p>Tai Viet. Since 2.26</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BATAK:CAPS"></a>G_UNICODE_SCRIPT_BATAK</p></td>
<td class="enum_member_description">
<p>Batak. Since 2.28</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BRAHMI:CAPS"></a>G_UNICODE_SCRIPT_BRAHMI</p></td>
<td class="enum_member_description">
<p>Brahmi. Since 2.28</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MANDAIC:CAPS"></a>G_UNICODE_SCRIPT_MANDAIC</p></td>
<td class="enum_member_description">
<p>Mandaic. Since 2.28</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CHAKMA:CAPS"></a>G_UNICODE_SCRIPT_CHAKMA</p></td>
<td class="enum_member_description">
<p>Chakma. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MEROITIC-CURSIVE:CAPS"></a>G_UNICODE_SCRIPT_MEROITIC_CURSIVE</p></td>
<td class="enum_member_description">
<p>Meroitic Cursive. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MEROITIC-HIEROGLYPHS:CAPS"></a>G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS</p></td>
<td class="enum_member_description">
<p>Meroitic Hieroglyphs. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MIAO:CAPS"></a>G_UNICODE_SCRIPT_MIAO</p></td>
<td class="enum_member_description">
<p>Miao. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SHARADA:CAPS"></a>G_UNICODE_SCRIPT_SHARADA</p></td>
<td class="enum_member_description">
<p>Sharada. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SORA-SOMPENG:CAPS"></a>G_UNICODE_SCRIPT_SORA_SOMPENG</p></td>
<td class="enum_member_description">
<p>Sora Sompeng. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TAKRI:CAPS"></a>G_UNICODE_SCRIPT_TAKRI</p></td>
<td class="enum_member_description">
<p>Takri. Since: 2.32</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-BASSA-VAH:CAPS"></a>G_UNICODE_SCRIPT_BASSA_VAH</p></td>
<td class="enum_member_description">
<p>Bassa. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-CAUCASIAN-ALBANIAN:CAPS"></a>G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN</p></td>
<td class="enum_member_description">
<p>Caucasian Albanian. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-DUPLOYAN:CAPS"></a>G_UNICODE_SCRIPT_DUPLOYAN</p></td>
<td class="enum_member_description">
<p>Duployan. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ELBASAN:CAPS"></a>G_UNICODE_SCRIPT_ELBASAN</p></td>
<td class="enum_member_description">
<p>Elbasan. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-GRANTHA:CAPS"></a>G_UNICODE_SCRIPT_GRANTHA</p></td>
<td class="enum_member_description">
<p>Grantha. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KHOJKI:CAPS"></a>G_UNICODE_SCRIPT_KHOJKI</p></td>
<td class="enum_member_description">
<p>Kjohki. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-KHUDAWADI:CAPS"></a>G_UNICODE_SCRIPT_KHUDAWADI</p></td>
<td class="enum_member_description">
<p>Khudawadi, Sindhi. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-LINEAR-A:CAPS"></a>G_UNICODE_SCRIPT_LINEAR_A</p></td>
<td class="enum_member_description">
<p>Linear A. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MAHAJANI:CAPS"></a>G_UNICODE_SCRIPT_MAHAJANI</p></td>
<td class="enum_member_description">
<p>Mahajani. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MANICHAEAN:CAPS"></a>G_UNICODE_SCRIPT_MANICHAEAN</p></td>
<td class="enum_member_description">
<p>Manichaean. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MENDE-KIKAKUI:CAPS"></a>G_UNICODE_SCRIPT_MENDE_KIKAKUI</p></td>
<td class="enum_member_description">
<p>Mende Kikakui. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MODI:CAPS"></a>G_UNICODE_SCRIPT_MODI</p></td>
<td class="enum_member_description">
<p>Modi. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MRO:CAPS"></a>G_UNICODE_SCRIPT_MRO</p></td>
<td class="enum_member_description">
<p>Mro. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-NABATAEAN:CAPS"></a>G_UNICODE_SCRIPT_NABATAEAN</p></td>
<td class="enum_member_description">
<p>Nabataean. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-NORTH-ARABIAN:CAPS"></a>G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN</p></td>
<td class="enum_member_description">
<p>Old North Arabian. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-PERMIC:CAPS"></a>G_UNICODE_SCRIPT_OLD_PERMIC</p></td>
<td class="enum_member_description">
<p>Old Permic. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PAHAWH-HMONG:CAPS"></a>G_UNICODE_SCRIPT_PAHAWH_HMONG</p></td>
<td class="enum_member_description">
<p>Pahawh Hmong. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PALMYRENE:CAPS"></a>G_UNICODE_SCRIPT_PALMYRENE</p></td>
<td class="enum_member_description">
<p>Palmyrene. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PAU-CIN-HAU:CAPS"></a>G_UNICODE_SCRIPT_PAU_CIN_HAU</p></td>
<td class="enum_member_description">
<p>Pau Cin Hau. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-PSALTER-PAHLAVI:CAPS"></a>G_UNICODE_SCRIPT_PSALTER_PAHLAVI</p></td>
<td class="enum_member_description">
<p>Psalter Pahlavi. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SIDDHAM:CAPS"></a>G_UNICODE_SCRIPT_SIDDHAM</p></td>
<td class="enum_member_description">
<p>Siddham. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-TIRHUTA:CAPS"></a>G_UNICODE_SCRIPT_TIRHUTA</p></td>
<td class="enum_member_description">
<p>Tirhuta. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-WARANG-CITI:CAPS"></a>G_UNICODE_SCRIPT_WARANG_CITI</p></td>
<td class="enum_member_description">
<p>Warang Citi. Since: 2.42</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-AHOM:CAPS"></a>G_UNICODE_SCRIPT_AHOM</p></td>
<td class="enum_member_description">
<p>Ahom. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-ANATOLIAN-HIEROGLYPHS:CAPS"></a>G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS</p></td>
<td class="enum_member_description">
<p>Anatolian Hieroglyphs. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-HATRAN:CAPS"></a>G_UNICODE_SCRIPT_HATRAN</p></td>
<td class="enum_member_description">
<p>Hatran. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-MULTANI:CAPS"></a>G_UNICODE_SCRIPT_MULTANI</p></td>
<td class="enum_member_description">
<p>Multani. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-OLD-HUNGARIAN:CAPS"></a>G_UNICODE_SCRIPT_OLD_HUNGARIAN</p></td>
<td class="enum_member_description">
<p>Old Hungarian. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-UNICODE-SCRIPT-SIGNWRITING:CAPS"></a>G_UNICODE_SCRIPT_SIGNWRITING</p></td>
<td class="enum_member_description">
<p>Signwriting. Since: 2.48</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GNormalizeMode"></a><h3>enum GNormalizeMode</h3>
<p>Defines how a Unicode string is transformed in a canonical
form, standardizing such issues as whether a character with
an accent is represented as a base character and combining
accent or as a single precomposed character. Unicode strings
should generally be normalized before comparing them.</p>
<div class="refsect3">
<a name="GNormalizeMode.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-DEFAULT:CAPS"></a>G_NORMALIZE_DEFAULT</p></td>
<td class="enum_member_description">
<p>standardize differences that do not affect the
text content, such as the above-mentioned accent representation</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-NFD:CAPS"></a>G_NORMALIZE_NFD</p></td>
<td class="enum_member_description">
<p>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-DEFAULT-COMPOSE:CAPS"></a>G_NORMALIZE_DEFAULT_COMPOSE</p></td>
<td class="enum_member_description">
<p>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a>, but with
composed forms rather than a maximally decomposed form</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-NFC:CAPS"></a>G_NORMALIZE_NFC</p></td>
<td class="enum_member_description">
<p>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-ALL:CAPS"></a>G_NORMALIZE_ALL</p></td>
<td class="enum_member_description">
<p>beyond <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> also standardize the
"compatibility" characters in Unicode, such as SUPERSCRIPT THREE
to the standard forms (in this case DIGIT THREE). Formatting
information may be lost but for most text operations such
characters should be considered the same</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-NFKD:CAPS"></a>G_NORMALIZE_NFKD</p></td>
<td class="enum_member_description">
<p>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-ALL-COMPOSE:CAPS"></a>G_NORMALIZE_ALL_COMPOSE</p></td>
<td class="enum_member_description">
<p>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>, but with composed
forms rather than a maximally decomposed form</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="G-NORMALIZE-NFKC:CAPS"></a>G_NORMALIZE_NFKC</p></td>
<td class="enum_member_description">
<p>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="glib-Unicode-Manipulation.see-also"></a><h2>See Also</h2>
<p>g_locale_to_utf8(), <a class="link" href="glib-Character-Set-Conversion.html#g-locale-from-utf8" title="g_locale_from_utf8 ()"><code class="function">g_locale_from_utf8()</code></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
</body>
</html>