1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Unicode Manipulation</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-utilities.html" title="GLib Utilities">
9 <link rel="prev" href="glib-Character-Set-Conversion.html" title="Character Set Conversion">
10 <link rel="next" href="glib-Base64-Encoding.html" title="Base64 Encoding">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
37 <td><a accesskey="p" href="glib-Character-Set-Conversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Base64-Encoding.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Unicode-Manipulation.synopsis" class="shortcut">Top</a>
46 <a href="#glib-Unicode-Manipulation.description" class="shortcut">Description</a>
49 <div class="refentry" title="Unicode Manipulation">
50 <a name="glib-Unicode-Manipulation"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
53 <h2><span class="refentrytitle"><a name="glib-Unicode-Manipulation.top_of_page"></a>Unicode Manipulation</span></h2>
54 <p>Unicode Manipulation — functions operating on Unicode characters and UTF-8 strings</p>
56 <td valign="top" align="right"></td>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Unicode-Manipulation.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include <glib.h>
63 typedef <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar">gunichar</a>;
64 typedef <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2">gunichar2</a>;
66 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-validate" title="g_unichar_validate ()">g_unichar_validate</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);
67 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalnum" title="g_unichar_isalnum ()">g_unichar_isalnum</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
68 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalpha" title="g_unichar_isalpha ()">g_unichar_isalpha</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
69 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iscntrl" title="g_unichar_iscntrl ()">g_unichar_iscntrl</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
70 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdefined" title="g_unichar_isdefined ()">g_unichar_isdefined</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
71 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdigit" title="g_unichar_isdigit ()">g_unichar_isdigit</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
72 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isgraph" title="g_unichar_isgraph ()">g_unichar_isgraph</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
73 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-islower" title="g_unichar_islower ()">g_unichar_islower</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
74 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ismark" title="g_unichar_ismark ()">g_unichar_ismark</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
75 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isprint" title="g_unichar_isprint ()">g_unichar_isprint</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
76 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ispunct" title="g_unichar_ispunct ()">g_unichar_ispunct</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
77 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isspace" title="g_unichar_isspace ()">g_unichar_isspace</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
78 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-istitle" title="g_unichar_istitle ()">g_unichar_istitle</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
79 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isupper" title="g_unichar_isupper ()">g_unichar_isupper</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
80 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isxdigit" title="g_unichar_isxdigit ()">g_unichar_isxdigit</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
81 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()">g_unichar_iswide</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
82 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide-cjk" title="g_unichar_iswide_cjk ()">g_unichar_iswide_cjk</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
83 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iszerowidth" title="g_unichar_iszerowidth ()">g_unichar_iszerowidth</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
84 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-toupper" title="g_unichar_toupper ()">g_unichar_toupper</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
85 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-tolower" title="g_unichar_tolower ()">g_unichar_tolower</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
86 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-totitle" title="g_unichar_totitle ()">g_unichar_totitle</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
87 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-digit-value" title="g_unichar_digit_value ()">g_unichar_digit_value</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
88 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-xdigit-value" title="g_unichar_xdigit_value ()">g_unichar_xdigit_value</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
89 enum <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType">GUnicodeType</a>;
90 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-type" title="g_unichar_type ()">g_unichar_type</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
91 enum <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType">GUnicodeBreakType</a>;
92 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType"><span class="returnvalue">GUnicodeBreakType</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-break-type" title="g_unichar_break_type ()">g_unichar_break_type</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
93 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-combining-class" title="g_unichar_combining_class ()">g_unichar_combining_class</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> uc);
94 <span class="returnvalue">void</span> <a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-ordering" title="g_unicode_canonical_ordering ()">g_unicode_canonical_ordering</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *string,
95 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> len);
96 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-decomposition" title="g_unicode_canonical_decomposition ()">g_unicode_canonical_decomposition</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
97 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> *result_len);
98 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <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> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
99 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *mirrored_ch);
100 enum <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript">GUnicodeScript</a>;
101 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-script" title="g_unichar_get_script ()">g_unichar_get_script</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);
103 #define <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-next-char" title="g_utf8_next_char()">g_utf8_next_char</a> (p)
104 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()">g_utf8_get_char</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
105 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
106 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len);
107 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
108 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> offset);
109 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
110 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *pos);
111 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-prev-char" title="g_utf8_prev_char ()">g_utf8_prev_char</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
112 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
113 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *end);
114 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
115 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
116 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strlen" title="g_utf8_strlen ()">g_utf8_strlen</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
117 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max);
118 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strncpy" title="g_utf8_strncpy ()">g_utf8_strncpy</a> (<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *dest,
119 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *src,
120 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> n);
121 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strchr" title="g_utf8_strchr ()">g_utf8_strchr</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
122 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
123 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
124 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strrchr" title="g_utf8_strrchr ()">g_utf8_strrchr</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
125 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
126 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
127 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strreverse" title="g_utf8_strreverse ()">g_utf8_strreverse</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
128 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
129 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()">g_utf8_validate</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
130 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len,
131 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> **end);
133 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strup" title="g_utf8_strup ()">g_utf8_strup</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
134 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
135 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strdown" title="g_utf8_strdown ()">g_utf8_strdown</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
136 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
137 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()">g_utf8_casefold</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
138 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
139 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-normalize" title="g_utf8_normalize ()">g_utf8_normalize</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
140 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
141 <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode"><span class="returnvalue">GNormalizeMode</span></a> mode);
142 enum <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode">GNormalizeMode</a>;
143 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()">g_utf8_collate</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str1,
144 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str2);
145 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key" title="g_utf8_collate_key ()">g_utf8_collate_key</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
146 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
147 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
148 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
150 <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-utf16" title="g_utf8_to_utf16 ()">g_utf8_to_utf16</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
151 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
152 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
153 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
154 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
155 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()">g_utf8_to_ucs4</a> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
156 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
157 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
158 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
159 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
160 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * <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> (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
161 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
162 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written);
163 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-ucs4" title="g_utf16_to_ucs4 ()">g_utf16_to_ucs4</a> (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
164 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
165 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
166 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
167 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
168 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-utf8" title="g_utf16_to_utf8 ()">g_utf16_to_utf8</a> (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
169 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
170 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
171 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
172 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
173 <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> * <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf16" title="g_ucs4_to_utf16 ()">g_ucs4_to_utf16</a> (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
174 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
175 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
176 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
177 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
178 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf8" title="g_ucs4_to_utf8 ()">g_ucs4_to_utf8</a> (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
179 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
180 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
181 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
182 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
183 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-to-utf8" title="g_unichar_to_utf8 ()">g_unichar_to_utf8</a> (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c,
184 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *outbuf);
187 <div class="refsect1" title="Description">
188 <a name="glib-Unicode-Manipulation.description"></a><h2>Description</h2>
190 This section describes a number of functions for dealing with
191 Unicode characters and strings. There are analogues of the
192 traditional <code class="filename">ctype.h</code> character classification
193 and case conversion functions, UTF-8 analogues of some string utility
194 functions, functions to perform normalization, case conversion and
195 collation on UTF-8 strings and finally functions to convert between
196 the UTF-8, UTF-16 and UCS-4 encodings of Unicode.
199 The implementations of the Unicode functions in GLib are based
200 on the Unicode Character Data tables, which are available from
201 <a class="ulink" href="http://www.unicode.org/" target="_top">www.unicode.org</a>.
202 GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1,
203 GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1.
206 <div class="refsect1" title="Details">
207 <a name="glib-Unicode-Manipulation.details"></a><h2>Details</h2>
208 <div class="refsect2" title="gunichar">
209 <a name="gunichar"></a><h3>gunichar</h3>
210 <pre class="programlisting">typedef guint32 gunichar;
213 A type which can hold any UTF-32 or UCS-4 character code, also known
214 as a Unicode code point.
217 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>,
218 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.
221 To print/scan values of this type as integer, use
222 <a class="link" href="glib-Miscellaneous-Macros.html#G-GINT32-MODIFIER:CAPS" title="G_GINT32_MODIFIER"><code class="literal">G_GINT32_MODIFIER</code></a> and/or <a class="link" href="glib-Miscellaneous-Macros.html#G-GUINT32-FORMAT:CAPS" title="G_GUINT32_FORMAT"><code class="literal">G_GUINT32_FORMAT</code></a>.
225 The notation to express a Unicode code point in running text is as a
226 hexadecimal number with four to six digits and uppercase letters, prefixed
227 by the string "U+". Leading zeros are omitted, unless the code point would
228 have fewer than four hexadecimal digits.
229 For example, "U+0041 LATIN CAPITAL LETTER A".
230 To print a code point in the U+-notation, use the format string
231 "U+<code class="literal">04</code>"G_GINT32_FORMAT"X".
232 To scan, use the format string "U+<code class="literal">06</code>"G_GINT32_FORMAT"X".
234 <div class="informalexample"><pre class="programlisting">
236 sscanf ("U+0041", "U+%06"G_GINT32_FORMAT"X", &c)
237 g_print ("Read U+%04"G_GINT32_FORMAT"X", c);
243 <div class="refsect2" title="gunichar2">
244 <a name="gunichar2"></a><h3>gunichar2</h3>
245 <pre class="programlisting">typedef guint16 gunichar2;
248 A type which can hold any UTF-16 code
249 point<sup>[<a name="utf16_surrogate_pairs" href="#ftn.utf16_surrogate_pairs" class="footnote">3</a>]</sup>.
252 To print/scan values of this type to/from text you need to convert
253 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>.
256 To print/scan values of this type as integer, use
257 <a class="link" href="glib-Miscellaneous-Macros.html#G-GINT16-MODIFIER:CAPS" title="G_GINT16_MODIFIER"><code class="literal">G_GINT16_MODIFIER</code></a> and/or <a class="link" href="glib-Miscellaneous-Macros.html#G-GUINT16-FORMAT:CAPS" title="G_GUINT16_FORMAT"><code class="literal">G_GUINT16_FORMAT</code></a>.
261 <div class="refsect2" title="g_unichar_validate ()">
262 <a name="g-unichar-validate"></a><h3>g_unichar_validate ()</h3>
263 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_validate (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);</pre>
265 Checks whether <em class="parameter"><code>ch</code></em> is a valid Unicode character. Some possible
266 integer values of <em class="parameter"><code>ch</code></em> will not be valid. 0 is considered a valid
267 character, though it's normally a string terminator.</p>
268 <div class="variablelist"><table border="0">
269 <col align="left" valign="top">
272 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
273 <td> a Unicode character
277 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
278 <td> <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
285 <div class="refsect2" title="g_unichar_isalnum ()">
286 <a name="g-unichar-isalnum"></a><h3>g_unichar_isalnum ()</h3>
287 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isalnum (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
289 Determines whether a character is alphanumeric.
290 Given some UTF-8 text, obtain a character value
291 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>
292 <div class="variablelist"><table border="0">
293 <col align="left" valign="top">
296 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
297 <td> a Unicode character
301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
302 <td> <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
309 <div class="refsect2" title="g_unichar_isalpha ()">
310 <a name="g-unichar-isalpha"></a><h3>g_unichar_isalpha ()</h3>
311 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isalpha (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
313 Determines whether a character is alphabetic (i.e. a letter).
314 Given some UTF-8 text, obtain a character value with
315 <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>
316 <div class="variablelist"><table border="0">
317 <col align="left" valign="top">
320 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
321 <td> a Unicode character
325 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
326 <td> <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
333 <div class="refsect2" title="g_unichar_iscntrl ()">
334 <a name="g-unichar-iscntrl"></a><h3>g_unichar_iscntrl ()</h3>
335 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_iscntrl (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
337 Determines whether a character is a control character.
338 Given some UTF-8 text, obtain a character value with
339 <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>
340 <div class="variablelist"><table border="0">
341 <col align="left" valign="top">
344 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
345 <td> a Unicode character
349 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
350 <td> <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
357 <div class="refsect2" title="g_unichar_isdefined ()">
358 <a name="g-unichar-isdefined"></a><h3>g_unichar_isdefined ()</h3>
359 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isdefined (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
361 Determines if a given character is assigned in the Unicode
363 <div class="variablelist"><table border="0">
364 <col align="left" valign="top">
367 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
368 <td> a Unicode character
372 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
373 <td> <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
380 <div class="refsect2" title="g_unichar_isdigit ()">
381 <a name="g-unichar-isdigit"></a><h3>g_unichar_isdigit ()</h3>
382 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isdigit (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
384 Determines whether a character is numeric (i.e. a digit). This
385 covers ASCII 0-9 and also digits in other languages/scripts. Given
386 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>
387 <div class="variablelist"><table border="0">
388 <col align="left" valign="top">
391 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
392 <td> a Unicode character
396 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
397 <td> <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
404 <div class="refsect2" title="g_unichar_isgraph ()">
405 <a name="g-unichar-isgraph"></a><h3>g_unichar_isgraph ()</h3>
406 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isgraph (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
408 Determines whether a character is printable and not a space
409 (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
410 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
411 spaces. Given some UTF-8 text, obtain a character value with
412 <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>
413 <div class="variablelist"><table border="0">
414 <col align="left" valign="top">
417 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
418 <td> a Unicode character
422 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
423 <td> <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
430 <div class="refsect2" title="g_unichar_islower ()">
431 <a name="g-unichar-islower"></a><h3>g_unichar_islower ()</h3>
432 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_islower (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
434 Determines whether a character is a lowercase letter.
435 Given some UTF-8 text, obtain a character value with
436 <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>
437 <div class="variablelist"><table border="0">
438 <col align="left" valign="top">
441 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
442 <td> a Unicode character
446 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
447 <td> <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
454 <div class="refsect2" title="g_unichar_ismark ()">
455 <a name="g-unichar-ismark"></a><h3>g_unichar_ismark ()</h3>
456 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_ismark (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
458 Determines whether a character is a mark (non-spacing mark,
459 combining mark, or enclosing mark in Unicode speak).
460 Given some UTF-8 text, obtain a character value
461 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>.
464 Note: in most cases where isalpha characters are allowed,
465 ismark characters should be allowed to as they are essential
466 for writing most European languages as well as many non-Latin
468 <div class="variablelist"><table border="0">
469 <col align="left" valign="top">
472 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
473 <td> a Unicode character
477 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
478 <td> <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
484 <p class="since">Since 2.14</p>
487 <div class="refsect2" title="g_unichar_isprint ()">
488 <a name="g-unichar-isprint"></a><h3>g_unichar_isprint ()</h3>
489 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isprint (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
491 Determines whether a character is printable.
492 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.
493 Given some UTF-8 text, obtain a character value with
494 <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>
495 <div class="variablelist"><table border="0">
496 <col align="left" valign="top">
499 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
500 <td> a Unicode character
504 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
505 <td> <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
512 <div class="refsect2" title="g_unichar_ispunct ()">
513 <a name="g-unichar-ispunct"></a><h3>g_unichar_ispunct ()</h3>
514 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_ispunct (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
516 Determines whether a character is punctuation or a symbol.
517 Given some UTF-8 text, obtain a character value with
518 <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>
519 <div class="variablelist"><table border="0">
520 <col align="left" valign="top">
523 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
524 <td> a Unicode character
528 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
529 <td> <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
536 <div class="refsect2" title="g_unichar_isspace ()">
537 <a name="g-unichar-isspace"></a><h3>g_unichar_isspace ()</h3>
538 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isspace (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
540 Determines whether a character is a space, tab, or line separator
541 (newline, carriage return, etc.). Given some UTF-8 text, obtain a
542 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>.
545 (Note: don't use this to do word breaking; you have to use
546 Pango or equivalent to get word breaking right, the algorithm
547 is fairly complex.)</p>
548 <div class="variablelist"><table border="0">
549 <col align="left" valign="top">
552 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
553 <td> a Unicode character
557 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
558 <td> <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
565 <div class="refsect2" title="g_unichar_istitle ()">
566 <a name="g-unichar-istitle"></a><h3>g_unichar_istitle ()</h3>
567 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_istitle (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
569 Determines if a character is titlecase. Some characters in
570 Unicode which are composites, such as the DZ digraph
571 have three case variants instead of just two. The titlecase
572 form is used at the beginning of a word where only the
573 first letter is capitalized. The titlecase form of the DZ
574 digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z.</p>
575 <div class="variablelist"><table border="0">
576 <col align="left" valign="top">
579 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
580 <td> a Unicode character
584 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
585 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is titlecase
592 <div class="refsect2" title="g_unichar_isupper ()">
593 <a name="g-unichar-isupper"></a><h3>g_unichar_isupper ()</h3>
594 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isupper (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
596 Determines if a character is uppercase.</p>
597 <div class="variablelist"><table border="0">
598 <col align="left" valign="top">
601 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
602 <td> a Unicode character
606 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
607 <td> <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
614 <div class="refsect2" title="g_unichar_isxdigit ()">
615 <a name="g-unichar-isxdigit"></a><h3>g_unichar_isxdigit ()</h3>
616 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_isxdigit (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
618 Determines if a character is a hexidecimal digit.</p>
619 <div class="variablelist"><table border="0">
620 <col align="left" valign="top">
623 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
624 <td> a Unicode character.
628 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
629 <td> <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
636 <div class="refsect2" title="g_unichar_iswide ()">
637 <a name="g-unichar-iswide"></a><h3>g_unichar_iswide ()</h3>
638 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_iswide (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
640 Determines if a character is typically rendered in a double-width
642 <div class="variablelist"><table border="0">
643 <col align="left" valign="top">
646 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
647 <td> a Unicode character
651 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
652 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is wide
659 <div class="refsect2" title="g_unichar_iswide_cjk ()">
660 <a name="g-unichar-iswide-cjk"></a><h3>g_unichar_iswide_cjk ()</h3>
661 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_iswide_cjk (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
663 Determines if a character is typically rendered in a double-width
664 cell under legacy East Asian locales. If a character is wide according to
665 <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
666 the converse is not necessarily true. See the
667 <a class="ulink" href="http://www.unicode.org/reports/tr11/" target="_top">Unicode Standard
668 Annex #11</a> for details.
671 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
672 this test, but not the other way around. Note that some characters may
673 pas 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>
674 <div class="variablelist"><table border="0">
675 <col align="left" valign="top">
678 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
679 <td> a Unicode character
683 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
684 <td> <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
690 <p class="since">Since 2.12</p>
693 <div class="refsect2" title="g_unichar_iszerowidth ()">
694 <a name="g-unichar-iszerowidth"></a><h3>g_unichar_iszerowidth ()</h3>
695 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_unichar_iszerowidth (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
697 Determines if a given character typically takes zero width when rendered.
698 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
699 (e.g., combining accents), format characters, zero-width
700 space, but not U+00AD SOFT HYPHEN.
703 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
704 <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
705 when displayed on a grid display (terminals). However, note that not all
706 terminals support zero-width rendering of zero-width marks.</p>
707 <div class="variablelist"><table border="0">
708 <col align="left" valign="top">
711 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
712 <td> a Unicode character
716 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
717 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character has zero width
723 <p class="since">Since 2.14</p>
726 <div class="refsect2" title="g_unichar_toupper ()">
727 <a name="g-unichar-toupper"></a><h3>g_unichar_toupper ()</h3>
728 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> g_unichar_toupper (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
730 Converts a character to uppercase.</p>
731 <div class="variablelist"><table border="0">
732 <col align="left" valign="top">
735 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
736 <td> a Unicode character
740 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
741 <td> the result of converting <em class="parameter"><code>c</code></em> to uppercase.
742 If <em class="parameter"><code>c</code></em> is not an lowercase or titlecase character,
743 or has no upper case equivalent <em class="parameter"><code>c</code></em> is returned unchanged.
750 <div class="refsect2" title="g_unichar_tolower ()">
751 <a name="g-unichar-tolower"></a><h3>g_unichar_tolower ()</h3>
752 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> g_unichar_tolower (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
754 Converts a character to lower case.</p>
755 <div class="variablelist"><table border="0">
756 <col align="left" valign="top">
759 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
760 <td> a Unicode character.
764 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
765 <td> the result of converting <em class="parameter"><code>c</code></em> to lower case.
766 If <em class="parameter"><code>c</code></em> is not an upperlower or titlecase character,
767 or has no lowercase equivalent <em class="parameter"><code>c</code></em> is returned unchanged.
774 <div class="refsect2" title="g_unichar_totitle ()">
775 <a name="g-unichar-totitle"></a><h3>g_unichar_totitle ()</h3>
776 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> g_unichar_totitle (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
778 Converts a character to the titlecase.</p>
779 <div class="variablelist"><table border="0">
780 <col align="left" valign="top">
783 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
784 <td> a Unicode character
788 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
789 <td> the result of converting <em class="parameter"><code>c</code></em> to titlecase.
790 If <em class="parameter"><code>c</code></em> is not an uppercase or lowercase character,
791 <em class="parameter"><code>c</code></em> is returned unchanged.
798 <div class="refsect2" title="g_unichar_digit_value ()">
799 <a name="g-unichar-digit-value"></a><h3>g_unichar_digit_value ()</h3>
800 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_unichar_digit_value (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
802 Determines the numeric value of a character as a decimal
804 <div class="variablelist"><table border="0">
805 <col align="left" valign="top">
808 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
809 <td> a Unicode character
813 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
814 <td> If <em class="parameter"><code>c</code></em> is a decimal digit (according to
815 <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.
822 <div class="refsect2" title="g_unichar_xdigit_value ()">
823 <a name="g-unichar-xdigit-value"></a><h3>g_unichar_xdigit_value ()</h3>
824 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_unichar_xdigit_value (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
826 Determines the numeric value of a character as a hexidecimal
828 <div class="variablelist"><table border="0">
829 <col align="left" valign="top">
832 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
833 <td> a Unicode character
837 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
838 <td> If <em class="parameter"><code>c</code></em> is a hex digit (according to
839 <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.
846 <div class="refsect2" title="enum GUnicodeType">
847 <a name="GUnicodeType"></a><h3>enum GUnicodeType</h3>
848 <pre class="programlisting">typedef enum
852 G_UNICODE_UNASSIGNED,
853 G_UNICODE_PRIVATE_USE,
855 G_UNICODE_LOWERCASE_LETTER,
856 G_UNICODE_MODIFIER_LETTER,
857 G_UNICODE_OTHER_LETTER,
858 G_UNICODE_TITLECASE_LETTER,
859 G_UNICODE_UPPERCASE_LETTER,
860 G_UNICODE_COMBINING_MARK,
861 G_UNICODE_ENCLOSING_MARK,
862 G_UNICODE_NON_SPACING_MARK,
863 G_UNICODE_DECIMAL_NUMBER,
864 G_UNICODE_LETTER_NUMBER,
865 G_UNICODE_OTHER_NUMBER,
866 G_UNICODE_CONNECT_PUNCTUATION,
867 G_UNICODE_DASH_PUNCTUATION,
868 G_UNICODE_CLOSE_PUNCTUATION,
869 G_UNICODE_FINAL_PUNCTUATION,
870 G_UNICODE_INITIAL_PUNCTUATION,
871 G_UNICODE_OTHER_PUNCTUATION,
872 G_UNICODE_OPEN_PUNCTUATION,
873 G_UNICODE_CURRENCY_SYMBOL,
874 G_UNICODE_MODIFIER_SYMBOL,
875 G_UNICODE_MATH_SYMBOL,
876 G_UNICODE_OTHER_SYMBOL,
877 G_UNICODE_LINE_SEPARATOR,
878 G_UNICODE_PARAGRAPH_SEPARATOR,
879 G_UNICODE_SPACE_SEPARATOR
883 These are the possible character classifications from the
884 Unicode specification.
885 See <a class="ulink" href="http://www.unicode.org/Public/UNIDATA/UnicodeData.html" target="_top">http://www.unicode.org/Public/UNIDATA/UnicodeData.html</a>.
887 <div class="variablelist"><table border="0">
888 <col align="left" valign="top">
891 <td><p><a name="G-UNICODE-CONTROL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CONTROL</code></span></p></td>
892 <td>General category "Other, Control" (Cc)
896 <td><p><a name="G-UNICODE-FORMAT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_FORMAT</code></span></p></td>
897 <td>General category "Other, Format" (Cf)
901 <td><p><a name="G-UNICODE-UNASSIGNED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_UNASSIGNED</code></span></p></td>
902 <td>General category "Other, Not Assigned" (Cn)
906 <td><p><a name="G-UNICODE-PRIVATE-USE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_PRIVATE_USE</code></span></p></td>
907 <td>General category "Other, Private Use" (Co)
911 <td><p><a name="G-UNICODE-SURROGATE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SURROGATE</code></span></p></td>
912 <td>General category "Other, Surrogate" (Cs)
916 <td><p><a name="G-UNICODE-LOWERCASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LOWERCASE_LETTER</code></span></p></td>
917 <td>General category "Letter, Lowercase" (Ll)
921 <td><p><a name="G-UNICODE-MODIFIER-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MODIFIER_LETTER</code></span></p></td>
922 <td>General category "Letter, Modifier" (Lm)
926 <td><p><a name="G-UNICODE-OTHER-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_LETTER</code></span></p></td>
927 <td>General category "Letter, Other" (Lo)
931 <td><p><a name="G-UNICODE-TITLECASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_TITLECASE_LETTER</code></span></p></td>
932 <td>General category "Letter, Titlecase" (Lt)
936 <td><p><a name="G-UNICODE-UPPERCASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_UPPERCASE_LETTER</code></span></p></td>
937 <td>General category "Letter, Uppercase" (Lu)
941 <td><p><a name="G-UNICODE-COMBINING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_COMBINING_MARK</code></span></p></td>
942 <td>General category "Mark, Spacing Combining" (Mc)
946 <td><p><a name="G-UNICODE-ENCLOSING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_ENCLOSING_MARK</code></span></p></td>
947 <td>General category "Mark, Enclosing" (Me)
951 <td><p><a name="G-UNICODE-NON-SPACING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_NON_SPACING_MARK</code></span></p></td>
952 <td>General category "Mark, Nonspacing" (Mn)
956 <td><p><a name="G-UNICODE-DECIMAL-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_DECIMAL_NUMBER</code></span></p></td>
957 <td>General category "Number, Decimal Digit" (Nd)
961 <td><p><a name="G-UNICODE-LETTER-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LETTER_NUMBER</code></span></p></td>
962 <td>General category "Number, Letter" (Nl)
966 <td><p><a name="G-UNICODE-OTHER-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_NUMBER</code></span></p></td>
967 <td>General category "Number, Other" (No)
971 <td><p><a name="G-UNICODE-CONNECT-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CONNECT_PUNCTUATION</code></span></p></td>
972 <td>General category "Punctuation, Connector" (Pc)
976 <td><p><a name="G-UNICODE-DASH-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_DASH_PUNCTUATION</code></span></p></td>
977 <td>General category "Punctuation, Dash" (Pd)
981 <td><p><a name="G-UNICODE-CLOSE-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CLOSE_PUNCTUATION</code></span></p></td>
982 <td>General category "Punctuation, Close" (Pe)
986 <td><p><a name="G-UNICODE-FINAL-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_FINAL_PUNCTUATION</code></span></p></td>
987 <td>General category "Punctuation, Final quote" (Pf)
991 <td><p><a name="G-UNICODE-INITIAL-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_INITIAL_PUNCTUATION</code></span></p></td>
992 <td>General category "Punctuation, Initial quote" (Pi)
996 <td><p><a name="G-UNICODE-OTHER-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_PUNCTUATION</code></span></p></td>
997 <td>General category "Punctuation, Other" (Po)
1001 <td><p><a name="G-UNICODE-OPEN-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OPEN_PUNCTUATION</code></span></p></td>
1002 <td>General category "Punctuation, Open" (Ps)
1006 <td><p><a name="G-UNICODE-CURRENCY-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CURRENCY_SYMBOL</code></span></p></td>
1007 <td>General category "Symbol, Currency" (Sc)
1011 <td><p><a name="G-UNICODE-MODIFIER-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MODIFIER_SYMBOL</code></span></p></td>
1012 <td>General category "Symbol, Modifier" (Sk)
1016 <td><p><a name="G-UNICODE-MATH-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MATH_SYMBOL</code></span></p></td>
1017 <td>General category "Symbol, Math" (Sm)
1021 <td><p><a name="G-UNICODE-OTHER-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_SYMBOL</code></span></p></td>
1022 <td>General category "Symbol, Other" (So)
1026 <td><p><a name="G-UNICODE-LINE-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LINE_SEPARATOR</code></span></p></td>
1027 <td>General category "Separator, Line" (Zl)
1031 <td><p><a name="G-UNICODE-PARAGRAPH-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_PARAGRAPH_SEPARATOR</code></span></p></td>
1032 <td>General category "Separator, Paragraph" (Zp)
1036 <td><p><a name="G-UNICODE-SPACE-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SPACE_SEPARATOR</code></span></p></td>
1037 <td>General category "Separator, Space" (Zs)
1044 <div class="refsect2" title="g_unichar_type ()">
1045 <a name="g-unichar-type"></a><h3>g_unichar_type ()</h3>
1046 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a> g_unichar_type (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
1048 Classifies a Unicode character by type.</p>
1049 <div class="variablelist"><table border="0">
1050 <col align="left" valign="top">
1053 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
1054 <td> a Unicode character
1058 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1059 <td> the type of the character.
1066 <div class="refsect2" title="enum GUnicodeBreakType">
1067 <a name="GUnicodeBreakType"></a><h3>enum GUnicodeBreakType</h3>
1068 <pre class="programlisting">typedef enum
1070 G_UNICODE_BREAK_MANDATORY,
1071 G_UNICODE_BREAK_CARRIAGE_RETURN,
1072 G_UNICODE_BREAK_LINE_FEED,
1073 G_UNICODE_BREAK_COMBINING_MARK,
1074 G_UNICODE_BREAK_SURROGATE,
1075 G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
1076 G_UNICODE_BREAK_INSEPARABLE,
1077 G_UNICODE_BREAK_NON_BREAKING_GLUE,
1078 G_UNICODE_BREAK_CONTINGENT,
1079 G_UNICODE_BREAK_SPACE,
1080 G_UNICODE_BREAK_AFTER,
1081 G_UNICODE_BREAK_BEFORE,
1082 G_UNICODE_BREAK_BEFORE_AND_AFTER,
1083 G_UNICODE_BREAK_HYPHEN,
1084 G_UNICODE_BREAK_NON_STARTER,
1085 G_UNICODE_BREAK_OPEN_PUNCTUATION,
1086 G_UNICODE_BREAK_CLOSE_PUNCTUATION,
1087 G_UNICODE_BREAK_QUOTATION,
1088 G_UNICODE_BREAK_EXCLAMATION,
1089 G_UNICODE_BREAK_IDEOGRAPHIC,
1090 G_UNICODE_BREAK_NUMERIC,
1091 G_UNICODE_BREAK_INFIX_SEPARATOR,
1092 G_UNICODE_BREAK_SYMBOL,
1093 G_UNICODE_BREAK_ALPHABETIC,
1094 G_UNICODE_BREAK_PREFIX,
1095 G_UNICODE_BREAK_POSTFIX,
1096 G_UNICODE_BREAK_COMPLEX_CONTEXT,
1097 G_UNICODE_BREAK_AMBIGUOUS,
1098 G_UNICODE_BREAK_UNKNOWN,
1099 G_UNICODE_BREAK_NEXT_LINE,
1100 G_UNICODE_BREAK_WORD_JOINER,
1101 G_UNICODE_BREAK_HANGUL_L_JAMO,
1102 G_UNICODE_BREAK_HANGUL_V_JAMO,
1103 G_UNICODE_BREAK_HANGUL_T_JAMO,
1104 G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
1105 G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE
1106 } GUnicodeBreakType;
1109 These are the possible line break classifications.
1110 The five Hangul types were added in Unicode 4.1, so, has been
1111 introduced in GLib 2.10. Note that new types may be added in the future.
1112 Applications should be ready to handle unknown values.
1113 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>.
1114 See <a class="ulink" href="http://www.unicode.org/unicode/reports/tr14/" target="_top">http://www.unicode.org/unicode/reports/tr14/</a>.
1116 <div class="variablelist"><table border="0">
1117 <col align="left" valign="top">
1120 <td><p><a name="G-UNICODE-BREAK-MANDATORY:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_MANDATORY</code></span></p></td>
1121 <td>Mandatory Break (BK)
1125 <td><p><a name="G-UNICODE-BREAK-CARRIAGE-RETURN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CARRIAGE_RETURN</code></span></p></td>
1126 <td>Carriage Return (CR)
1130 <td><p><a name="G-UNICODE-BREAK-LINE-FEED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_LINE_FEED</code></span></p></td>
1135 <td><p><a name="G-UNICODE-BREAK-COMBINING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_COMBINING_MARK</code></span></p></td>
1136 <td>Attached Characters and Combining Marks (CM)
1140 <td><p><a name="G-UNICODE-BREAK-SURROGATE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SURROGATE</code></span></p></td>
1145 <td><p><a name="G-UNICODE-BREAK-ZERO-WIDTH-SPACE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_ZERO_WIDTH_SPACE</code></span></p></td>
1146 <td>Zero Width Space (ZW)
1150 <td><p><a name="G-UNICODE-BREAK-INSEPARABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_INSEPARABLE</code></span></p></td>
1151 <td>Inseparable (IN)
1155 <td><p><a name="G-UNICODE-BREAK-NON-BREAKING-GLUE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NON_BREAKING_GLUE</code></span></p></td>
1156 <td>Non-breaking ("Glue") (GL)
1160 <td><p><a name="G-UNICODE-BREAK-CONTINGENT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CONTINGENT</code></span></p></td>
1161 <td>Contingent Break Opportunity (CB)
1165 <td><p><a name="G-UNICODE-BREAK-SPACE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SPACE</code></span></p></td>
1170 <td><p><a name="G-UNICODE-BREAK-AFTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_AFTER</code></span></p></td>
1171 <td>Break Opportunity After (BA)
1175 <td><p><a name="G-UNICODE-BREAK-BEFORE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_BEFORE</code></span></p></td>
1176 <td>Break Opportunity Before (BB)
1180 <td><p><a name="G-UNICODE-BREAK-BEFORE-AND-AFTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_BEFORE_AND_AFTER</code></span></p></td>
1181 <td>Break Opportunity Before and After (B2)
1185 <td><p><a name="G-UNICODE-BREAK-HYPHEN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HYPHEN</code></span></p></td>
1190 <td><p><a name="G-UNICODE-BREAK-NON-STARTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NON_STARTER</code></span></p></td>
1195 <td><p><a name="G-UNICODE-BREAK-OPEN-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_OPEN_PUNCTUATION</code></span></p></td>
1196 <td>Opening Punctuation (OP)
1200 <td><p><a name="G-UNICODE-BREAK-CLOSE-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CLOSE_PUNCTUATION</code></span></p></td>
1201 <td>Closing Punctuation (CL)
1205 <td><p><a name="G-UNICODE-BREAK-QUOTATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_QUOTATION</code></span></p></td>
1206 <td>Ambiguous Quotation (QU)
1210 <td><p><a name="G-UNICODE-BREAK-EXCLAMATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_EXCLAMATION</code></span></p></td>
1211 <td>Exclamation/Interrogation (EX)
1215 <td><p><a name="G-UNICODE-BREAK-IDEOGRAPHIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_IDEOGRAPHIC</code></span></p></td>
1216 <td>Ideographic (ID)
1220 <td><p><a name="G-UNICODE-BREAK-NUMERIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NUMERIC</code></span></p></td>
1225 <td><p><a name="G-UNICODE-BREAK-INFIX-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_INFIX_SEPARATOR</code></span></p></td>
1226 <td>Infix Separator (Numeric) (IS)
1230 <td><p><a name="G-UNICODE-BREAK-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SYMBOL</code></span></p></td>
1231 <td>Symbols Allowing Break After (SY)
1235 <td><p><a name="G-UNICODE-BREAK-ALPHABETIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_ALPHABETIC</code></span></p></td>
1236 <td>Ordinary Alphabetic and Symbol Characters (AL)
1240 <td><p><a name="G-UNICODE-BREAK-PREFIX:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_PREFIX</code></span></p></td>
1241 <td>Prefix (Numeric) (PR)
1245 <td><p><a name="G-UNICODE-BREAK-POSTFIX:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_POSTFIX</code></span></p></td>
1246 <td>Postfix (Numeric) (PO)
1250 <td><p><a name="G-UNICODE-BREAK-COMPLEX-CONTEXT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_COMPLEX_CONTEXT</code></span></p></td>
1251 <td>Complex Content Dependent (South East Asian) (SA)
1255 <td><p><a name="G-UNICODE-BREAK-AMBIGUOUS:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_AMBIGUOUS</code></span></p></td>
1256 <td>Ambiguous (Alphabetic or Ideographic) (AI)
1260 <td><p><a name="G-UNICODE-BREAK-UNKNOWN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_UNKNOWN</code></span></p></td>
1265 <td><p><a name="G-UNICODE-BREAK-NEXT-LINE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NEXT_LINE</code></span></p></td>
1270 <td><p><a name="G-UNICODE-BREAK-WORD-JOINER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_WORD_JOINER</code></span></p></td>
1271 <td>Word Joiner (WJ)
1275 <td><p><a name="G-UNICODE-BREAK-HANGUL-L-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_L_JAMO</code></span></p></td>
1276 <td>Hangul L Jamo (JL)
1280 <td><p><a name="G-UNICODE-BREAK-HANGUL-V-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_V_JAMO</code></span></p></td>
1281 <td>Hangul V Jamo (JV)
1285 <td><p><a name="G-UNICODE-BREAK-HANGUL-T-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_T_JAMO</code></span></p></td>
1286 <td>Hangul T Jamo (JT)
1290 <td><p><a name="G-UNICODE-BREAK-HANGUL-LV-SYLLABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_LV_SYLLABLE</code></span></p></td>
1291 <td>Hangul LV Syllable (H2)
1295 <td><p><a name="G-UNICODE-BREAK-HANGUL-LVT-SYLLABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE</code></span></p></td>
1296 <td>Hangul LVT Syllable (H3)
1303 <div class="refsect2" title="g_unichar_break_type ()">
1304 <a name="g-unichar-break-type"></a><h3>g_unichar_break_type ()</h3>
1305 <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 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
1307 Determines the break type of <em class="parameter"><code>c</code></em>. <em class="parameter"><code>c</code></em> should be a Unicode character
1308 (to derive a character from UTF-8 encoded text, use
1309 <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
1310 breaks ("text boundaries"), Pango implements the Unicode boundary
1311 resolution algorithms and normally you would use a function such
1312 as <a href="/usr/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>
1313 <div class="variablelist"><table border="0">
1314 <col align="left" valign="top">
1317 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
1318 <td> a Unicode character
1322 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1323 <td> the break type of <em class="parameter"><code>c</code></em>
1330 <div class="refsect2" title="g_unichar_combining_class ()">
1331 <a name="g-unichar-combining-class"></a><h3>g_unichar_combining_class ()</h3>
1332 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_unichar_combining_class (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> uc);</pre>
1334 Determines the canonical combining class of a Unicode character.</p>
1335 <div class="variablelist"><table border="0">
1336 <col align="left" valign="top">
1339 <td><p><span class="term"><em class="parameter"><code>uc</code></em> :</span></p></td>
1340 <td> a Unicode character
1344 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1345 <td> the combining class of the character
1351 <p class="since">Since 2.14</p>
1354 <div class="refsect2" title="g_unicode_canonical_ordering ()">
1355 <a name="g-unicode-canonical-ordering"></a><h3>g_unicode_canonical_ordering ()</h3>
1356 <pre class="programlisting"><span class="returnvalue">void</span> g_unicode_canonical_ordering (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *string,
1357 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> len);</pre>
1359 Computes the canonical ordering of a string in-place.
1360 This rearranges decomposed characters in the string
1361 according to their combining classes. See the Unicode
1362 manual for more information.</p>
1363 <div class="variablelist"><table border="0">
1364 <col align="left" valign="top">
1367 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1368 <td> a UCS-4 encoded string.
1372 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
1373 <td> the maximum length of <em class="parameter"><code>string</code></em> to use.
1380 <div class="refsect2" title="g_unicode_canonical_decomposition ()">
1381 <a name="g-unicode-canonical-decomposition"></a><h3>g_unicode_canonical_decomposition ()</h3>
1382 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * g_unicode_canonical_decomposition (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
1383 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> *result_len);</pre>
1385 Computes the canonical decomposition of a Unicode character.</p>
1386 <div class="variablelist"><table border="0">
1387 <col align="left" valign="top">
1390 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1391 <td> a Unicode character.
1395 <td><p><span class="term"><em class="parameter"><code>result_len</code></em> :</span></p></td>
1396 <td> location to store the length of the return value.
1400 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1401 <td> a newly allocated string of Unicode characters.
1402 <em class="parameter"><code>result_len</code></em> is set to the resulting length of the string.
1409 <div class="refsect2" title="g_unichar_get_mirror_char ()">
1410 <a name="g-unichar-get-mirror-char"></a><h3>g_unichar_get_mirror_char ()</h3>
1411 <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 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
1412 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *mirrored_ch);</pre>
1414 In Unicode, some characters are <em class="firstterm">mirrored</em>. This
1415 means that their images are mirrored horizontally in text that is laid
1416 out from right to left. For instance, "(" would become its mirror image,
1417 ")", in right-to-left text.
1420 If <em class="parameter"><code>ch</code></em> has the Unicode mirrored property and there is another unicode
1421 character that typically has a glyph that is the mirror image of <em class="parameter"><code>ch</code></em>'s
1422 glyph and <em class="parameter"><code>mirrored_ch</code></em> is set, it puts that character in the address
1423 pointed to by <em class="parameter"><code>mirrored_ch</code></em>. Otherwise the original character is put.</p>
1424 <div class="variablelist"><table border="0">
1425 <col align="left" valign="top">
1428 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1429 <td> a Unicode character
1433 <td><p><span class="term"><em class="parameter"><code>mirrored_ch</code></em> :</span></p></td>
1434 <td> location to store the mirrored character
1438 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1439 <td> <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
1445 <p class="since">Since 2.4</p>
1448 <div class="refsect2" title="enum GUnicodeScript">
1449 <a name="GUnicodeScript"></a><h3>enum GUnicodeScript</h3>
1450 <pre class="programlisting">typedef enum
1451 { /* ISO 15924 code */
1452 G_UNICODE_SCRIPT_INVALID_CODE = -1,
1453 G_UNICODE_SCRIPT_COMMON = 0, /* Zyyy */
1454 G_UNICODE_SCRIPT_INHERITED, /* Qaai */
1455 G_UNICODE_SCRIPT_ARABIC, /* Arab */
1456 G_UNICODE_SCRIPT_ARMENIAN, /* Armn */
1457 G_UNICODE_SCRIPT_BENGALI, /* Beng */
1458 G_UNICODE_SCRIPT_BOPOMOFO, /* Bopo */
1459 G_UNICODE_SCRIPT_CHEROKEE, /* Cher */
1460 G_UNICODE_SCRIPT_COPTIC, /* Qaac */
1461 G_UNICODE_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */
1462 G_UNICODE_SCRIPT_DESERET, /* Dsrt */
1463 G_UNICODE_SCRIPT_DEVANAGARI, /* Deva */
1464 G_UNICODE_SCRIPT_ETHIOPIC, /* Ethi */
1465 G_UNICODE_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */
1466 G_UNICODE_SCRIPT_GOTHIC, /* Goth */
1467 G_UNICODE_SCRIPT_GREEK, /* Grek */
1468 G_UNICODE_SCRIPT_GUJARATI, /* Gujr */
1469 G_UNICODE_SCRIPT_GURMUKHI, /* Guru */
1470 G_UNICODE_SCRIPT_HAN, /* Hani */
1471 G_UNICODE_SCRIPT_HANGUL, /* Hang */
1472 G_UNICODE_SCRIPT_HEBREW, /* Hebr */
1473 G_UNICODE_SCRIPT_HIRAGANA, /* Hira */
1474 G_UNICODE_SCRIPT_KANNADA, /* Knda */
1475 G_UNICODE_SCRIPT_KATAKANA, /* Kana */
1476 G_UNICODE_SCRIPT_KHMER, /* Khmr */
1477 G_UNICODE_SCRIPT_LAO, /* Laoo */
1478 G_UNICODE_SCRIPT_LATIN, /* Latn (Latf, Latg) */
1479 G_UNICODE_SCRIPT_MALAYALAM, /* Mlym */
1480 G_UNICODE_SCRIPT_MONGOLIAN, /* Mong */
1481 G_UNICODE_SCRIPT_MYANMAR, /* Mymr */
1482 G_UNICODE_SCRIPT_OGHAM, /* Ogam */
1483 G_UNICODE_SCRIPT_OLD_ITALIC, /* Ital */
1484 G_UNICODE_SCRIPT_ORIYA, /* Orya */
1485 G_UNICODE_SCRIPT_RUNIC, /* Runr */
1486 G_UNICODE_SCRIPT_SINHALA, /* Sinh */
1487 G_UNICODE_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */
1488 G_UNICODE_SCRIPT_TAMIL, /* Taml */
1489 G_UNICODE_SCRIPT_TELUGU, /* Telu */
1490 G_UNICODE_SCRIPT_THAANA, /* Thaa */
1491 G_UNICODE_SCRIPT_THAI, /* Thai */
1492 G_UNICODE_SCRIPT_TIBETAN, /* Tibt */
1493 G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
1494 G_UNICODE_SCRIPT_YI, /* Yiii */
1495 G_UNICODE_SCRIPT_TAGALOG, /* Tglg */
1496 G_UNICODE_SCRIPT_HANUNOO, /* Hano */
1497 G_UNICODE_SCRIPT_BUHID, /* Buhd */
1498 G_UNICODE_SCRIPT_TAGBANWA, /* Tagb */
1500 /* Unicode-4.0 additions */
1501 G_UNICODE_SCRIPT_BRAILLE, /* Brai */
1502 G_UNICODE_SCRIPT_CYPRIOT, /* Cprt */
1503 G_UNICODE_SCRIPT_LIMBU, /* Limb */
1504 G_UNICODE_SCRIPT_OSMANYA, /* Osma */
1505 G_UNICODE_SCRIPT_SHAVIAN, /* Shaw */
1506 G_UNICODE_SCRIPT_LINEAR_B, /* Linb */
1507 G_UNICODE_SCRIPT_TAI_LE, /* Tale */
1508 G_UNICODE_SCRIPT_UGARITIC, /* Ugar */
1510 /* Unicode-4.1 additions */
1511 G_UNICODE_SCRIPT_NEW_TAI_LUE, /* Talu */
1512 G_UNICODE_SCRIPT_BUGINESE, /* Bugi */
1513 G_UNICODE_SCRIPT_GLAGOLITIC, /* Glag */
1514 G_UNICODE_SCRIPT_TIFINAGH, /* Tfng */
1515 G_UNICODE_SCRIPT_SYLOTI_NAGRI, /* Sylo */
1516 G_UNICODE_SCRIPT_OLD_PERSIAN, /* Xpeo */
1517 G_UNICODE_SCRIPT_KHAROSHTHI, /* Khar */
1519 /* Unicode-5.0 additions */
1520 G_UNICODE_SCRIPT_UNKNOWN, /* Zzzz */
1521 G_UNICODE_SCRIPT_BALINESE, /* Bali */
1522 G_UNICODE_SCRIPT_CUNEIFORM, /* Xsux */
1523 G_UNICODE_SCRIPT_PHOENICIAN, /* Phnx */
1524 G_UNICODE_SCRIPT_PHAGS_PA, /* Phag */
1525 G_UNICODE_SCRIPT_NKO, /* Nkoo */
1527 /* Unicode-5.1 additions */
1528 G_UNICODE_SCRIPT_KAYAH_LI, /* Kali */
1529 G_UNICODE_SCRIPT_LEPCHA, /* Lepc */
1530 G_UNICODE_SCRIPT_REJANG, /* Rjng */
1531 G_UNICODE_SCRIPT_SUNDANESE, /* Sund */
1532 G_UNICODE_SCRIPT_SAURASHTRA, /* Saur */
1533 G_UNICODE_SCRIPT_CHAM, /* Cham */
1534 G_UNICODE_SCRIPT_OL_CHIKI, /* Olck */
1535 G_UNICODE_SCRIPT_VAI, /* Vaii */
1536 G_UNICODE_SCRIPT_CARIAN, /* Cari */
1537 G_UNICODE_SCRIPT_LYCIAN, /* Lyci */
1538 G_UNICODE_SCRIPT_LYDIAN /* Lydi */
1542 The <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> enumeration identifies different writing
1543 systems. The values correspond to the names as defined in the
1544 Unicode standard. The enumeration has been added in GLib 2.14,
1545 and is interchangeable with <a href="/usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html#PangoScript"><span class="type">PangoScript</span></a>.
1546 Note that new types may be added in the future. Applications
1547 should be ready to handle unknown values.
1548 See <a class="ulink" href="http://www.unicode.org/reports/tr24/" target="_top">Unicode Standard Annex
1549 #24: Script names</a>.
1551 <div class="variablelist"><table border="0">
1552 <col align="left" valign="top">
1555 <td><p><a name="G-UNICODE-SCRIPT-INVALID-CODE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_INVALID_CODE</code></span></p></td>
1556 <td>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>
1560 <td><p><a name="G-UNICODE-SCRIPT-COMMON:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_COMMON</code></span></p></td>
1561 <td> a character used by multiple different scripts
1565 <td><p><a name="G-UNICODE-SCRIPT-INHERITED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_INHERITED</code></span></p></td>
1566 <td> a mark glyph that takes its script from the
1567 base glyph to which it is attached
1571 <td><p><a name="G-UNICODE-SCRIPT-ARABIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ARABIC</code></span></p></td>
1576 <td><p><a name="G-UNICODE-SCRIPT-ARMENIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ARMENIAN</code></span></p></td>
1581 <td><p><a name="G-UNICODE-SCRIPT-BENGALI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BENGALI</code></span></p></td>
1586 <td><p><a name="G-UNICODE-SCRIPT-BOPOMOFO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BOPOMOFO</code></span></p></td>
1591 <td><p><a name="G-UNICODE-SCRIPT-CHEROKEE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CHEROKEE</code></span></p></td>
1596 <td><p><a name="G-UNICODE-SCRIPT-COPTIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_COPTIC</code></span></p></td>
1601 <td><p><a name="G-UNICODE-SCRIPT-CYRILLIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CYRILLIC</code></span></p></td>
1606 <td><p><a name="G-UNICODE-SCRIPT-DESERET:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_DESERET</code></span></p></td>
1611 <td><p><a name="G-UNICODE-SCRIPT-DEVANAGARI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_DEVANAGARI</code></span></p></td>
1616 <td><p><a name="G-UNICODE-SCRIPT-ETHIOPIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ETHIOPIC</code></span></p></td>
1621 <td><p><a name="G-UNICODE-SCRIPT-GEORGIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GEORGIAN</code></span></p></td>
1626 <td><p><a name="G-UNICODE-SCRIPT-GOTHIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GOTHIC</code></span></p></td>
1631 <td><p><a name="G-UNICODE-SCRIPT-GREEK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GREEK</code></span></p></td>
1636 <td><p><a name="G-UNICODE-SCRIPT-GUJARATI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GUJARATI</code></span></p></td>
1641 <td><p><a name="G-UNICODE-SCRIPT-GURMUKHI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GURMUKHI</code></span></p></td>
1646 <td><p><a name="G-UNICODE-SCRIPT-HAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HAN</code></span></p></td>
1651 <td><p><a name="G-UNICODE-SCRIPT-HANGUL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HANGUL</code></span></p></td>
1656 <td><p><a name="G-UNICODE-SCRIPT-HEBREW:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HEBREW</code></span></p></td>
1661 <td><p><a name="G-UNICODE-SCRIPT-HIRAGANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HIRAGANA</code></span></p></td>
1666 <td><p><a name="G-UNICODE-SCRIPT-KANNADA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KANNADA</code></span></p></td>
1671 <td><p><a name="G-UNICODE-SCRIPT-KATAKANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KATAKANA</code></span></p></td>
1676 <td><p><a name="G-UNICODE-SCRIPT-KHMER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KHMER</code></span></p></td>
1681 <td><p><a name="G-UNICODE-SCRIPT-LAO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LAO</code></span></p></td>
1686 <td><p><a name="G-UNICODE-SCRIPT-LATIN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LATIN</code></span></p></td>
1691 <td><p><a name="G-UNICODE-SCRIPT-MALAYALAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MALAYALAM</code></span></p></td>
1696 <td><p><a name="G-UNICODE-SCRIPT-MONGOLIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MONGOLIAN</code></span></p></td>
1701 <td><p><a name="G-UNICODE-SCRIPT-MYANMAR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MYANMAR</code></span></p></td>
1706 <td><p><a name="G-UNICODE-SCRIPT-OGHAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OGHAM</code></span></p></td>
1711 <td><p><a name="G-UNICODE-SCRIPT-OLD-ITALIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OLD_ITALIC</code></span></p></td>
1716 <td><p><a name="G-UNICODE-SCRIPT-ORIYA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ORIYA</code></span></p></td>
1721 <td><p><a name="G-UNICODE-SCRIPT-RUNIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_RUNIC</code></span></p></td>
1726 <td><p><a name="G-UNICODE-SCRIPT-SINHALA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SINHALA</code></span></p></td>
1731 <td><p><a name="G-UNICODE-SCRIPT-SYRIAC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SYRIAC</code></span></p></td>
1736 <td><p><a name="G-UNICODE-SCRIPT-TAMIL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAMIL</code></span></p></td>
1741 <td><p><a name="G-UNICODE-SCRIPT-TELUGU:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TELUGU</code></span></p></td>
1746 <td><p><a name="G-UNICODE-SCRIPT-THAANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_THAANA</code></span></p></td>
1751 <td><p><a name="G-UNICODE-SCRIPT-THAI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_THAI</code></span></p></td>
1756 <td><p><a name="G-UNICODE-SCRIPT-TIBETAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TIBETAN</code></span></p></td>
1761 <td><p><a name="G-UNICODE-SCRIPT-CANADIAN-ABORIGINAL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL</code></span></p></td>
1767 <td><p><a name="G-UNICODE-SCRIPT-YI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_YI</code></span></p></td>
1772 <td><p><a name="G-UNICODE-SCRIPT-TAGALOG:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAGALOG</code></span></p></td>
1777 <td><p><a name="G-UNICODE-SCRIPT-HANUNOO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HANUNOO</code></span></p></td>
1782 <td><p><a name="G-UNICODE-SCRIPT-BUHID:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BUHID</code></span></p></td>
1787 <td><p><a name="G-UNICODE-SCRIPT-TAGBANWA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAGBANWA</code></span></p></td>
1792 <td><p><a name="G-UNICODE-SCRIPT-BRAILLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BRAILLE</code></span></p></td>
1797 <td><p><a name="G-UNICODE-SCRIPT-CYPRIOT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CYPRIOT</code></span></p></td>
1802 <td><p><a name="G-UNICODE-SCRIPT-LIMBU:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LIMBU</code></span></p></td>
1807 <td><p><a name="G-UNICODE-SCRIPT-OSMANYA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OSMANYA</code></span></p></td>
1812 <td><p><a name="G-UNICODE-SCRIPT-SHAVIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SHAVIAN</code></span></p></td>
1817 <td><p><a name="G-UNICODE-SCRIPT-LINEAR-B:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LINEAR_B</code></span></p></td>
1822 <td><p><a name="G-UNICODE-SCRIPT-TAI-LE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAI_LE</code></span></p></td>
1827 <td><p><a name="G-UNICODE-SCRIPT-UGARITIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_UGARITIC</code></span></p></td>
1832 <td><p><a name="G-UNICODE-SCRIPT-NEW-TAI-LUE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_NEW_TAI_LUE</code></span></p></td>
1837 <td><p><a name="G-UNICODE-SCRIPT-BUGINESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BUGINESE</code></span></p></td>
1842 <td><p><a name="G-UNICODE-SCRIPT-GLAGOLITIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GLAGOLITIC</code></span></p></td>
1847 <td><p><a name="G-UNICODE-SCRIPT-TIFINAGH:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TIFINAGH</code></span></p></td>
1852 <td><p><a name="G-UNICODE-SCRIPT-SYLOTI-NAGRI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SYLOTI_NAGRI</code></span></p></td>
1857 <td><p><a name="G-UNICODE-SCRIPT-OLD-PERSIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OLD_PERSIAN</code></span></p></td>
1862 <td><p><a name="G-UNICODE-SCRIPT-KHAROSHTHI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KHAROSHTHI</code></span></p></td>
1867 <td><p><a name="G-UNICODE-SCRIPT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_UNKNOWN</code></span></p></td>
1868 <td> an unassigned code point
1872 <td><p><a name="G-UNICODE-SCRIPT-BALINESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BALINESE</code></span></p></td>
1877 <td><p><a name="G-UNICODE-SCRIPT-CUNEIFORM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CUNEIFORM</code></span></p></td>
1882 <td><p><a name="G-UNICODE-SCRIPT-PHOENICIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_PHOENICIAN</code></span></p></td>
1887 <td><p><a name="G-UNICODE-SCRIPT-PHAGS-PA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_PHAGS_PA</code></span></p></td>
1892 <td><p><a name="G-UNICODE-SCRIPT-NKO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_NKO</code></span></p></td>
1897 <td><p><a name="G-UNICODE-SCRIPT-KAYAH-LI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KAYAH_LI</code></span></p></td>
1898 <td> Kayah Li. Since 2.16.3
1902 <td><p><a name="G-UNICODE-SCRIPT-LEPCHA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LEPCHA</code></span></p></td>
1903 <td> Lepcha. Since 2.16.3
1907 <td><p><a name="G-UNICODE-SCRIPT-REJANG:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_REJANG</code></span></p></td>
1908 <td> Rejang. Since 2.16.3
1912 <td><p><a name="G-UNICODE-SCRIPT-SUNDANESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SUNDANESE</code></span></p></td>
1913 <td> Sundanese. Since 2.16.3
1917 <td><p><a name="G-UNICODE-SCRIPT-SAURASHTRA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SAURASHTRA</code></span></p></td>
1918 <td>Saurashtra. Since 2.16.3
1922 <td><p><a name="G-UNICODE-SCRIPT-CHAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CHAM</code></span></p></td>
1923 <td> Cham. Since 2.16.3
1927 <td><p><a name="G-UNICODE-SCRIPT-OL-CHIKI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OL_CHIKI</code></span></p></td>
1928 <td> Ol Chiki. Since 2.16.3
1932 <td><p><a name="G-UNICODE-SCRIPT-VAI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_VAI</code></span></p></td>
1933 <td> Vai. Since 2.16.3
1937 <td><p><a name="G-UNICODE-SCRIPT-CARIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CARIAN</code></span></p></td>
1938 <td> Carian. Since 2.16.3
1942 <td><p><a name="G-UNICODE-SCRIPT-LYCIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LYCIAN</code></span></p></td>
1943 <td> Lycian. Since 2.16.3
1947 <td><p><a name="G-UNICODE-SCRIPT-LYDIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LYDIAN</code></span></p></td>
1948 <td> Lydian. Since 2.16.3
1955 <div class="refsect2" title="g_unichar_get_script ()">
1956 <a name="g-unichar-get-script"></a><h3>g_unichar_get_script ()</h3>
1957 <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 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);</pre>
1959 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
1960 by Unicode Standard Annex <span class="type">24</span>). No check is made for <em class="parameter"><code>ch</code></em> being a
1961 valid Unicode character; if you pass in invalid character, the
1962 result is undefined.
1965 This function is equivalent to <a href="/usr/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
1966 two are interchangeable.</p>
1967 <div class="variablelist"><table border="0">
1968 <col align="left" valign="top">
1971 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1972 <td> a Unicode character
1976 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1977 <td> the <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> for the character.
1983 <p class="since">Since 2.14</p>
1986 <div class="refsect2" title="g_utf8_next_char()">
1987 <a name="g-utf8-next-char"></a><h3>g_utf8_next_char()</h3>
1988 <pre class="programlisting">#define g_utf8_next_char(p)</pre>
1990 Skips to the next character in a UTF-8 string. The string must be
1991 valid; this macro is as fast as possible, and has no error-checking.
1992 You would use this macro to iterate over a string character by
1993 character. The macro returns the start of the next UTF-8 character.
1994 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
1995 that may contain invalid UTF-8.
1997 <div class="variablelist"><table border="0">
1998 <col align="left" valign="top">
2000 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2001 <td>Pointer to the start of a valid UTF-8 character.
2007 <div class="refsect2" title="g_utf8_get_char ()">
2008 <a name="g-utf8-get-char"></a><h3>g_utf8_get_char ()</h3>
2009 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> g_utf8_get_char (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2011 Converts a sequence of bytes encoded as UTF-8 to a Unicode character.
2012 If <em class="parameter"><code>p</code></em> does not point to a valid UTF-8 encoded character, results are
2013 undefined. If you are not sure that the bytes are complete
2014 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>
2016 <div class="variablelist"><table border="0">
2017 <col align="left" valign="top">
2020 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2021 <td> a pointer to Unicode character encoded as UTF-8
2025 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2026 <td> the resulting character
2033 <div class="refsect2" title="g_utf8_get_char_validated ()">
2034 <a name="g-utf8-get-char-validated"></a><h3>g_utf8_get_char_validated ()</h3>
2035 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2036 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len);</pre>
2038 Convert a sequence of bytes encoded as UTF-8 to a Unicode character.
2039 This function checks for incomplete characters, for invalid characters
2040 such as characters that are out of the range of Unicode, and for
2041 overlong encodings of valid characters.</p>
2042 <div class="variablelist"><table border="0">
2043 <col align="left" valign="top">
2046 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2047 <td> a pointer to Unicode character encoded as UTF-8
2051 <td><p><span class="term"><em class="parameter"><code>max_len</code></em> :</span></p></td>
2052 <td> the maximum number of bytes to read, or -1, for no maximum or
2053 if <em class="parameter"><code>p</code></em> is nul-terminated
2057 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2058 <td> the resulting character. If <em class="parameter"><code>p</code></em> points to a partial
2059 sequence at the end of a string that could begin a valid
2060 character (or if <em class="parameter"><code>max_len</code></em> is zero), returns (gunichar)-2;
2061 otherwise, if <em class="parameter"><code>p</code></em> does not point to a valid UTF-8 encoded
2062 Unicode character, returns (gunichar)-1.
2069 <div class="refsect2" title="g_utf8_offset_to_pointer ()">
2070 <a name="g-utf8-offset-to-pointer"></a><h3>g_utf8_offset_to_pointer ()</h3>
2071 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2072 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> offset);</pre>
2074 Converts from an integer character offset to a pointer to a position
2078 Since 2.10, this function allows to pass a negative <em class="parameter"><code>offset</code></em> to
2079 step backwards. It is usually worth stepping backwards from the end
2080 instead of forwards if <em class="parameter"><code>offset</code></em> is in the last fourth of the string,
2081 since moving forward is about 3 times faster than moving backward.
2085 <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
2086 <h3 class="title">Note</h3>
2088 This function doesn't abort when reaching the end of <em class="parameter"><code>str</code></em>. Therefore
2089 you should be sure that <em class="parameter"><code>offset</code></em> is within string boundaries before
2090 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.
2093 This limitation exists as this function is called frequently during
2094 text rendering and therefore has to be as fast as possible.
2097 <div class="variablelist"><table border="0">
2098 <col align="left" valign="top">
2101 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2102 <td> a UTF-8 encoded string
2106 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
2107 <td> a character offset within <em class="parameter"><code>str</code></em>
2111 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2112 <td> the resulting pointer
2119 <div class="refsect2" title="g_utf8_pointer_to_offset ()">
2120 <a name="g-utf8-pointer-to-offset"></a><h3>g_utf8_pointer_to_offset ()</h3>
2121 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2122 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *pos);</pre>
2124 Converts from a pointer to position within a string to a integer
2128 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
2129 a negative offset in this case.</p>
2130 <div class="variablelist"><table border="0">
2131 <col align="left" valign="top">
2134 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2135 <td> a UTF-8 encoded string
2139 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
2140 <td> a pointer to a position within <em class="parameter"><code>str</code></em>
2144 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2145 <td> the resulting character offset
2152 <div class="refsect2" title="g_utf8_prev_char ()">
2153 <a name="g-utf8-prev-char"></a><h3>g_utf8_prev_char ()</h3>
2154 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf8_prev_char (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2156 Finds the previous UTF-8 character in the string before <em class="parameter"><code>p</code></em>.
2159 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2160 is made to see if the character found is actually valid other than
2161 it starts with an appropriate byte. If <em class="parameter"><code>p</code></em> might be the first
2162 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>
2163 <div class="variablelist"><table border="0">
2164 <col align="left" valign="top">
2167 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2168 <td> a pointer to a position within a UTF-8 encoded string
2172 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2173 <td> a pointer to the found character.
2180 <div class="refsect2" title="g_utf8_find_next_char ()">
2181 <a name="g-utf8-find-next-char"></a><h3>g_utf8_find_next_char ()</h3>
2182 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2183 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *end);</pre>
2185 Finds the start of the next UTF-8 character in the string after <em class="parameter"><code>p</code></em>.
2188 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2189 is made to see if the character found is actually valid other than
2190 it starts with an appropriate byte.</p>
2191 <div class="variablelist"><table border="0">
2192 <col align="left" valign="top">
2195 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2196 <td> a pointer to a position within a UTF-8 encoded string
2200 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
2201 <td> a pointer to the byte following the end of the string,
2202 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.
2206 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2207 <td> 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>
2214 <div class="refsect2" title="g_utf8_find_prev_char ()">
2215 <a name="g-utf8-find-prev-char"></a><h3>g_utf8_find_prev_char ()</h3>
2216 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2217 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2219 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
2220 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
2221 UTF-8 characters are present in <em class="parameter"><code>str</code></em> before <em class="parameter"><code>p</code></em>.
2224 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2225 is made to see if the character found is actually valid other than
2226 it starts with an appropriate byte.</p>
2227 <div class="variablelist"><table border="0">
2228 <col align="left" valign="top">
2231 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2232 <td> pointer to the beginning of a UTF-8 encoded string
2236 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2237 <td> pointer to some position within <em class="parameter"><code>str</code></em>
2241 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2242 <td> 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>.
2249 <div class="refsect2" title="g_utf8_strlen ()">
2250 <a name="g-utf8-strlen"></a><h3>g_utf8_strlen ()</h3>
2251 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> g_utf8_strlen (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2252 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max);</pre>
2254 Computes the length of the string in characters, not including
2255 the terminating nul character.</p>
2256 <div class="variablelist"><table border="0">
2257 <col align="left" valign="top">
2260 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2261 <td> pointer to the start of a UTF-8 encoded string
2265 <td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
2266 <td> the maximum number of bytes to examine. If <em class="parameter"><code>max</code></em>
2267 is less than 0, then the string is assumed to be
2268 nul-terminated. If <em class="parameter"><code>max</code></em> is 0, <em class="parameter"><code>p</code></em> will not be examined and
2269 may be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2273 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2274 <td> the length of the string in characters
2281 <div class="refsect2" title="g_utf8_strncpy ()">
2282 <a name="g-utf8-strncpy"></a><h3>g_utf8_strncpy ()</h3>
2283 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf8_strncpy (<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *dest,
2284 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *src,
2285 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> n);</pre>
2287 Like the standard C <code class="function">strncpy()</code> function, but
2288 copies a given number of characters instead of a given number of
2289 bytes. The <em class="parameter"><code>src</code></em> string must be valid UTF-8 encoded text.
2290 (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
2291 utility functions with it.)</p>
2292 <div class="variablelist"><table border="0">
2293 <col align="left" valign="top">
2296 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2297 <td> buffer to fill with characters from <em class="parameter"><code>src</code></em>
2301 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2302 <td> UTF-8 encoded string
2306 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
2307 <td> character count
2311 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2312 <td> <em class="parameter"><code>dest</code></em>
2319 <div class="refsect2" title="g_utf8_strchr ()">
2320 <a name="g-utf8-strchr"></a><h3>g_utf8_strchr ()</h3>
2321 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf8_strchr (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2322 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2323 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
2325 Finds the leftmost occurrence of the given Unicode character
2326 in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em> bytes.
2327 If <em class="parameter"><code>len</code></em> is -1, allow unbounded search.</p>
2328 <div class="variablelist"><table border="0">
2329 <col align="left" valign="top">
2332 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2333 <td> a nul-terminated UTF-8 encoded string
2337 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2338 <td> the maximum length of <em class="parameter"><code>p</code></em>
2342 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2343 <td> a Unicode character
2347 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2348 <td> <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,
2349 otherwise, a pointer to the start of the leftmost occurrence of
2350 the character in the string.
2357 <div class="refsect2" title="g_utf8_strrchr ()">
2358 <a name="g-utf8-strrchr"></a><h3>g_utf8_strrchr ()</h3>
2359 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf8_strrchr (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2360 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2361 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
2363 Find the rightmost occurrence of the given Unicode character
2364 in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em> bytes.
2365 If <em class="parameter"><code>len</code></em> is -1, allow unbounded search.</p>
2366 <div class="variablelist"><table border="0">
2367 <col align="left" valign="top">
2370 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2371 <td> a nul-terminated UTF-8 encoded string
2375 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2376 <td> the maximum length of <em class="parameter"><code>p</code></em>
2380 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2381 <td> a Unicode character
2385 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2386 <td> <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,
2387 otherwise, a pointer to the start of the rightmost occurrence of the
2388 character in the string.
2395 <div class="refsect2" title="g_utf8_strreverse ()">
2396 <a name="g-utf8-strreverse"></a><h3>g_utf8_strreverse ()</h3>
2397 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf8_strreverse (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2398 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2400 Reverses a UTF-8 string. <em class="parameter"><code>str</code></em> must be valid UTF-8 encoded text.
2401 (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
2402 utility functions with it.)
2405 This function is intended for programmatic uses of reversed strings.
2406 It pays no attention to decomposed characters, combining marks, byte
2407 order marks, directional indicators (LRM, LRO, etc) and similar
2408 characters which might need special handling when reversing a string
2409 for display purposes.
2412 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
2413 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
2414 no longer needed.</p>
2415 <div class="variablelist"><table border="0">
2416 <col align="left" valign="top">
2419 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2420 <td> a UTF-8 encoded string
2424 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2425 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> < 0,
2426 then the string is nul-terminated.
2430 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2431 <td> a newly-allocated string which is the reverse of <em class="parameter"><code>str</code></em>.
2437 <p class="since">Since 2.2</p>
2440 <div class="refsect2" title="g_utf8_validate ()">
2441 <a name="g-utf8-validate"></a><h3>g_utf8_validate ()</h3>
2442 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_utf8_validate (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2443 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len,
2444 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> **end);</pre>
2446 Validates UTF-8 encoded text. <em class="parameter"><code>str</code></em> is the text to validate;
2447 if <em class="parameter"><code>str</code></em> is nul-terminated, then <em class="parameter"><code>max_len</code></em> can be -1, otherwise
2448 <em class="parameter"><code>max_len</code></em> should be the number of bytes to validate.
2449 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
2450 will be stored there (i.e. the start of the first invalid
2451 character if some bytes were invalid, or the end of the text
2452 being validated otherwise).
2455 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
2456 positive and NUL is met before <em class="parameter"><code>max_len</code></em> bytes have been read.
2459 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+
2460 routines <span class="emphasis"><em>require</em></span> valid UTF-8 as input;
2461 so data read from a file or the network should be checked
2462 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>
2463 <div class="variablelist"><table border="0">
2464 <col align="left" valign="top">
2467 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2468 <td> a pointer to character data
2472 <td><p><span class="term"><em class="parameter"><code>max_len</code></em> :</span></p></td>
2473 <td> max bytes to validate, or -1 to go until NUL
2477 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
2478 <td> return location for end of valid data
2482 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2483 <td> <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
2490 <div class="refsect2" title="g_utf8_strup ()">
2491 <a name="g-utf8-strup"></a><h3>g_utf8_strup ()</h3>
2492 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * g_utf8_strup (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2493 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2495 Converts all Unicode characters in the string that have a case
2496 to uppercase. The exact manner that this is done depends
2497 on the current locale, and may result in the number of
2498 characters in the string increasing. (For instance, the
2499 German ess-zet will be changed to SS.)</p>
2500 <div class="variablelist"><table border="0">
2501 <col align="left" valign="top">
2504 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2505 <td> a UTF-8 encoded string
2509 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2510 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2514 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2515 <td> a newly allocated string, with all characters
2516 converted to uppercase.
2523 <div class="refsect2" title="g_utf8_strdown ()">
2524 <a name="g-utf8-strdown"></a><h3>g_utf8_strdown ()</h3>
2525 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * g_utf8_strdown (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2526 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2528 Converts all Unicode characters in the string that have a case
2529 to lowercase. The exact manner that this is done depends
2530 on the current locale, and may result in the number of
2531 characters in the string changing.</p>
2532 <div class="variablelist"><table border="0">
2533 <col align="left" valign="top">
2536 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2537 <td> a UTF-8 encoded string
2541 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2542 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2546 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2547 <td> a newly allocated string, with all characters
2548 converted to lowercase.
2555 <div class="refsect2" title="g_utf8_casefold ()">
2556 <a name="g-utf8-casefold"></a><h3>g_utf8_casefold ()</h3>
2557 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * g_utf8_casefold (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2558 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2560 Converts a string into a form that is independent of case. The
2561 result will not correspond to any particular case, but can be
2562 compared for equality or ordered with the results of calling
2563 <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.
2566 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
2567 only an approximation to the correct linguistic case insensitive
2568 ordering, though it is a fairly good one. Getting this exactly
2569 right would require a more sophisticated collation function that
2570 takes case sensitivity into account. GLib does not currently
2571 provide such a function.</p>
2572 <div class="variablelist"><table border="0">
2573 <col align="left" valign="top">
2576 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2577 <td> a UTF-8 encoded string
2581 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2582 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2586 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2587 <td> a newly allocated string, that is a
2588 case independent form of <em class="parameter"><code>str</code></em>.
2595 <div class="refsect2" title="g_utf8_normalize ()">
2596 <a name="g-utf8-normalize"></a><h3>g_utf8_normalize ()</h3>
2597 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * g_utf8_normalize (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2598 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2599 <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode"><span class="returnvalue">GNormalizeMode</span></a> mode);</pre>
2601 Converts a string into canonical form, standardizing
2602 such issues as whether a character with an accent
2603 is represented as a base character and combining
2604 accent or as a single precomposed character. The
2605 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
2606 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>
2607 before comparing two Unicode strings.
2610 The normalization mode <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> only
2611 standardizes differences that do not affect the
2612 text content, such as the above-mentioned accent
2613 representation. <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a> also standardizes
2614 the "compatibility" characters in Unicode, such
2615 as SUPERSCRIPT THREE to the standard forms
2616 (in this case DIGIT THREE). Formatting information
2617 may be lost but for most text operations such
2618 characters should be considered the same.
2621 <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>
2622 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>,
2623 but returned a result with composed forms rather
2624 than a maximally decomposed form. This is often
2625 useful if you intend to convert the string to
2626 a legacy encoding or pass it to a system with
2627 less capable Unicode handling.</p>
2628 <div class="variablelist"><table border="0">
2629 <col align="left" valign="top">
2632 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2633 <td> a UTF-8 encoded string.
2637 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2638 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2642 <td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
2643 <td> the type of normalization to perform.
2647 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2648 <td> a newly allocated string, that is the
2649 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
2657 <div class="refsect2" title="enum GNormalizeMode">
2658 <a name="GNormalizeMode"></a><h3>enum GNormalizeMode</h3>
2659 <pre class="programlisting">typedef enum {
2660 G_NORMALIZE_DEFAULT,
2661 G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
2662 G_NORMALIZE_DEFAULT_COMPOSE,
2663 G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
2665 G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
2666 G_NORMALIZE_ALL_COMPOSE,
2667 G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
2671 Defines how a Unicode string is transformed in a canonical
2672 form, standardizing such issues as whether a character with an accent is
2673 represented as a base character and combining accent or as a single precomposed
2674 character. Unicode strings should generally be normalized before comparing them.
2676 <div class="variablelist"><table border="0">
2677 <col align="left" valign="top">
2680 <td><p><a name="G-NORMALIZE-DEFAULT:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_DEFAULT</code></span></p></td>
2681 <td>standardize differences that do not affect the
2682 text content, such as the above-mentioned accent representation.
2686 <td><p><a name="G-NORMALIZE-NFD:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFD</code></span></p></td>
2687 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a>.
2691 <td><p><a name="G-NORMALIZE-DEFAULT-COMPOSE:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></span></p></td>
2692 <td>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a>, but with composed
2693 forms rather than a maximally decomposed form.
2697 <td><p><a name="G-NORMALIZE-NFC:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFC</code></span></p></td>
2698 <td>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>.
2702 <td><p><a name="G-NORMALIZE-ALL:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_ALL</code></span></p></td>
2703 <td>beyond <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> also standardize the
2704 "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the
2705 standard forms (in this case DIGIT THREE). Formatting information may be
2706 lost but for most text operations such characters should be considered the
2711 <td><p><a name="G-NORMALIZE-NFKD:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFKD</code></span></p></td>
2712 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>.
2716 <td><p><a name="G-NORMALIZE-ALL-COMPOSE:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></span></p></td>
2717 <td>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>, but with composed
2718 forms rather than a maximally decomposed form.
2722 <td><p><a name="G-NORMALIZE-NFKC:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFKC</code></span></p></td>
2723 <td>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>.
2730 <div class="refsect2" title="g_utf8_collate ()">
2731 <a name="g-utf8-collate"></a><h3>g_utf8_collate ()</h3>
2732 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_utf8_collate (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str1,
2733 const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str2);</pre>
2735 Compares two strings for ordering using the linguistically
2736 correct rules for the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.
2737 When sorting a large number of strings, it will be significantly
2738 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
2739 compare the keys with <code class="function">strcmp()</code> when sorting instead of sorting
2740 the original strings.</p>
2741 <div class="variablelist"><table border="0">
2742 <col align="left" valign="top">
2745 <td><p><span class="term"><em class="parameter"><code>str1</code></em> :</span></p></td>
2746 <td> a UTF-8 encoded string
2750 <td><p><span class="term"><em class="parameter"><code>str2</code></em> :</span></p></td>
2751 <td> a UTF-8 encoded string
2755 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2756 <td> < 0 if <em class="parameter"><code>str1</code></em> compares before <em class="parameter"><code>str2</code></em>,
2757 0 if they compare equal, > 0 if <em class="parameter"><code>str1</code></em> compares after <em class="parameter"><code>str2</code></em>.
2764 <div class="refsect2" title="g_utf8_collate_key ()">
2765 <a name="g-utf8-collate-key"></a><h3>g_utf8_collate_key ()</h3>
2766 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> * g_utf8_collate_key (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2767 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2769 Converts a string into a collation key that can be compared
2770 with other collation keys produced by the same function using
2771 <code class="function">strcmp()</code>.
2774 The results of comparing the collation keys of two strings
2775 with <code class="function">strcmp()</code> will always be the same as comparing the two
2776 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>.
2779 Note that this function depends on the
2780 <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
2781 <div class="variablelist"><table border="0">
2782 <col align="left" valign="top">
2785 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2786 <td> a UTF-8 encoded string.
2790 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2791 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2795 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2796 <td> a newly allocated string. This string should
2797 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.
2804 <div class="refsect2" title="g_utf8_collate_key_for_filename ()">
2805 <a name="g-utf8-collate-key-for-filename"></a><h3>g_utf8_collate_key_for_filename ()</h3>
2806 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2807 <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2809 Converts a string into a collation key that can be compared
2810 with other collation keys produced by the same function using <code class="function">strcmp()</code>.
2813 In order to sort filenames correctly, this function treats the dot '.'
2814 as a special case. Most dictionary orderings seem to consider it
2815 insignificant, thus producing the ordering "event.c" "eventgenerator.c"
2816 "event.h" instead of "event.c" "event.h" "eventgenerator.c". Also, we
2817 would like to treat numbers intelligently so that "file1" "file10" "file5"
2818 is sorted as "file1" "file5" "file10".
2821 Note that this function depends on the
2822 <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
2823 <div class="variablelist"><table border="0">
2824 <col align="left" valign="top">
2827 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2828 <td> a UTF-8 encoded string.
2832 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2833 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2837 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2838 <td> a newly allocated string. This string should
2839 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.
2845 <p class="since">Since 2.8</p>
2848 <div class="refsect2" title="g_utf8_to_utf16 ()">
2849 <a name="g-utf8-to-utf16"></a><h3>g_utf8_to_utf16 ()</h3>
2850 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> * g_utf8_to_utf16 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2851 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2852 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
2853 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
2854 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
2856 Convert a string from UTF-8 to UTF-16. A 0 character will be
2857 added to the result after the converted text.</p>
2858 <div class="variablelist"><table border="0">
2859 <col align="left" valign="top">
2862 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2863 <td> a UTF-8 encoded string
2867 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2868 <td> the maximum length (number of bytes) of <em class="parameter"><code>str</code></em> to use.
2869 If <em class="parameter"><code>len</code></em> < 0, then the string is nul-terminated.
2873 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
2874 <td> 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>.
2875 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
2876 returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
2877 character. If an error occurs then the index of the
2878 invalid input is stored here.
2882 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2883 <td> location to store number of <span class="type">gunichar2</span> written,
2884 or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2885 The value stored here does not include the trailing 0.
2889 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
2890 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
2891 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
2892 <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.
2896 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2897 <td> a pointer to a newly allocated UTF-16 string.
2898 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
2899 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
2900 <em class="parameter"><code>error</code></em> set.
2907 <div class="refsect2" title="g_utf8_to_ucs4 ()">
2908 <a name="g-utf8-to-ucs4"></a><h3>g_utf8_to_ucs4 ()</h3>
2909 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * g_utf8_to_ucs4 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2910 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2911 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
2912 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
2913 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
2915 Convert a string from UTF-8 to a 32-bit fixed width
2916 representation as UCS-4. A trailing 0 will be added to the
2917 string after the converted text.</p>
2918 <div class="variablelist"><table border="0">
2919 <col align="left" valign="top">
2922 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2923 <td> a UTF-8 encoded string
2927 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2928 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> < 0,
2929 then the string is nul-terminated.
2933 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
2934 <td> 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>.
2935 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
2936 returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
2937 character. If an error occurs then the index of the
2938 invalid input is stored here.
2942 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2943 <td> 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>.
2944 The value here stored does not include the trailing 0
2949 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
2950 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
2951 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
2952 <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.
2956 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2957 <td> a pointer to a newly allocated UCS-4 string.
2958 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
2959 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
2960 <em class="parameter"><code>error</code></em> set.
2967 <div class="refsect2" title="g_utf8_to_ucs4_fast ()">
2968 <a name="g-utf8-to-ucs4-fast"></a><h3>g_utf8_to_ucs4_fast ()</h3>
2969 <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 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2970 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2971 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written);</pre>
2973 Convert a string from UTF-8 to a 32-bit fixed width
2974 representation as UCS-4, assuming valid UTF-8 input.
2975 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>
2976 but does no error checking on the input.</p>
2977 <div class="variablelist"><table border="0">
2978 <col align="left" valign="top">
2981 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2982 <td> a UTF-8 encoded string
2986 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2987 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> < 0,
2988 then the string is nul-terminated.
2992 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2993 <td> location to store the number of characters in the
2994 result, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2998 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2999 <td> a pointer to a newly allocated UCS-4 string.
3000 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>.
3007 <div class="refsect2" title="g_utf16_to_ucs4 ()">
3008 <a name="g-utf16-to-ucs4"></a><h3>g_utf16_to_ucs4 ()</h3>
3009 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> * g_utf16_to_ucs4 (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
3010 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3011 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3012 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3013 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3015 Convert a string from UTF-16 to UCS-4. The result will be
3017 <div class="variablelist"><table border="0">
3018 <col align="left" valign="top">
3021 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3022 <td> a UTF-16 encoded string
3026 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3027 <td> the maximum length (number of <span class="type">gunichar2</span>) of <em class="parameter"><code>str</code></em> to use.
3028 If <em class="parameter"><code>len</code></em> < 0, then the string is nul-terminated.
3032 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3033 <td> 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>.
3034 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
3035 returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
3036 character. If an error occurs then the index of the
3037 invalid input is stored here.
3041 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3042 <td> 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>.
3043 The value stored here does not include the trailing
3048 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3049 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3050 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
3051 <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.
3055 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3056 <td> a pointer to a newly allocated UCS-4 string.
3057 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
3058 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3059 <em class="parameter"><code>error</code></em> set.
3066 <div class="refsect2" title="g_utf16_to_utf8 ()">
3067 <a name="g-utf16-to-utf8"></a><h3>g_utf16_to_utf8 ()</h3>
3068 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_utf16_to_utf8 (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
3069 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3070 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3071 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3072 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3074 Convert a string from UTF-16 to UTF-8. The result will be
3075 terminated with a 0 byte.
3078 Note that the input is expected to be already in native endianness,
3079 an initial byte-order-mark character is not handled specially.
3080 <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
3081 ambiguous endianess.
3084 Further note that this function does not validate the result
3085 string; it may e.g. include embedded NUL characters. The only
3086 validation done by this function is to ensure that the input can
3087 be correctly interpreted as UTF-16, i.e. it doesn't contain
3088 things unpaired surrogates.</p>
3089 <div class="variablelist"><table border="0">
3090 <col align="left" valign="top">
3093 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3094 <td> a UTF-16 encoded string
3098 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3099 <td> the maximum length (number of <span class="type">gunichar2</span>) of <em class="parameter"><code>str</code></em> to use.
3100 If <em class="parameter"><code>len</code></em> < 0, then the string is nul-terminated.
3104 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3105 <td> 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>.
3106 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
3107 returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
3108 character. If an error occurs then the index of the
3109 invalid input is stored here.
3113 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3114 <td> 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>.
3115 The value stored here does not include the trailing
3120 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3121 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3122 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
3123 <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.
3127 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3128 <td> a pointer to a newly allocated UTF-8 string.
3129 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
3130 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3131 <em class="parameter"><code>error</code></em> set.
3138 <div class="refsect2" title="g_ucs4_to_utf16 ()">
3139 <a name="g-ucs4-to-utf16"></a><h3>g_ucs4_to_utf16 ()</h3>
3140 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> * g_ucs4_to_utf16 (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
3141 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3142 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3143 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3144 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3146 Convert a string from UCS-4 to UTF-16. A 0 character will be
3147 added to the result after the converted text.</p>
3148 <div class="variablelist"><table border="0">
3149 <col align="left" valign="top">
3152 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3153 <td> a UCS-4 encoded string
3157 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3158 <td> the maximum length (number of characters) of <em class="parameter"><code>str</code></em> to use.
3159 If <em class="parameter"><code>len</code></em> < 0, then the string is nul-terminated.
3163 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3164 <td> 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>.
3165 If an error occurs then the index of the invalid input
3170 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3171 <td> location to store number of <span class="type">gunichar2</span>
3172 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
3173 include the trailing 0.
3177 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3178 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3179 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
3180 <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.
3184 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3185 <td> a pointer to a newly allocated UTF-16 string.
3186 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
3187 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3188 <em class="parameter"><code>error</code></em> set.
3195 <div class="refsect2" title="g_ucs4_to_utf8 ()">
3196 <a name="g-ucs4-to-utf8"></a><h3>g_ucs4_to_utf8 ()</h3>
3197 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_ucs4_to_utf8 (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
3198 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3199 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3200 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3201 <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3203 Convert a string from a 32-bit fixed width representation as UCS-4.
3204 to UTF-8. The result will be terminated with a 0 byte.</p>
3205 <div class="variablelist"><table border="0">
3206 <col align="left" valign="top">
3209 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3210 <td> a UCS-4 encoded string
3214 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3215 <td> the maximum length (number of characters) of <em class="parameter"><code>str</code></em> to use.
3216 If <em class="parameter"><code>len</code></em> < 0, then the string is nul-terminated.
3220 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3221 <td> 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>.
3225 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3226 <td> 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>.
3227 The value here stored does not include the trailing 0
3232 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3233 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3234 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
3235 <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.
3239 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3240 <td> a pointer to a newly allocated UTF-8 string.
3241 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
3242 error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3243 <em class="parameter"><code>error</code></em> set. In that case, <em class="parameter"><code>items_read</code></em> will be
3244 set to the position of the first invalid input
3252 <div class="refsect2" title="g_unichar_to_utf8 ()">
3253 <a name="g-unichar-to-utf8"></a><h3>g_unichar_to_utf8 ()</h3>
3254 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_unichar_to_utf8 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c,
3255 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *outbuf);</pre>
3257 Converts a single character to UTF-8.</p>
3258 <div class="variablelist"><table border="0">
3259 <col align="left" valign="top">
3262 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
3263 <td> a Unicode character code
3267 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
3268 <td> output buffer, must have at least 6 bytes of space.
3269 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
3270 and nothing will be written to <em class="parameter"><code>outbuf</code></em>.
3274 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3275 <td> number of bytes written
3282 <div class="refsect1" title="See Also">
3283 <a name="glib-Unicode-Manipulation.see-also"></a><h2>See Also</h2>
3286 <div class="variablelist"><table border="0">
3287 <col align="left" valign="top">
3289 <td><p><span class="term"><a class="link" href="glib-Character-Set-Conversion.html#g-locale-to-utf8" title="g_locale_to_utf8 ()"><code class="function">g_locale_to_utf8()</code></a>, <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></span></p></td>
3291 Convenience functions for converting between UTF-8 and the locale encoding.
3298 <div class="footnotes">
3299 <br><hr width="100" align="left">
3300 <div class="footnote"><em class="firstterm"><sup>[<a name="ftn.utf16_surrogate_pairs" href="#utf16_surrogate_pairs" class="firstterm">3</a>] </sup>surrogate pairs</em></div>
3303 <div class="footer">
3305 Generated by GTK-Doc V1.13</div>