Unicode Manipulation functions operating on Unicode characters and UTF-8 strings. This section describes a number of functions for dealing with Unicode characters and strings. There are analogues of the traditional ctype.h character classification and case conversion functions, UTF-8 analogues of some string utility functions, functions to perform normalization, case conversion and collation on UTF-8 strings and finally functions to convert between the UTF-8, UTF-16 and UCS-4 encodings of Unicode. g_locale_to_utf8(), g_locale_from_utf8() Convenience functions for converting between UTF-8 and the locale encoding. A type which can hold any UCS-4 character code. A type which can hold any UTF-16 character code. @ch: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: @c: @Returns: These are the possible character classifications. See http://www.unicode.org/Public/UNIDATA/UnicodeData.html. @G_UNICODE_CONTROL: @G_UNICODE_FORMAT: @G_UNICODE_UNASSIGNED: @G_UNICODE_PRIVATE_USE: @G_UNICODE_SURROGATE: @G_UNICODE_LOWERCASE_LETTER: @G_UNICODE_MODIFIER_LETTER: @G_UNICODE_OTHER_LETTER: @G_UNICODE_TITLECASE_LETTER: @G_UNICODE_UPPERCASE_LETTER: @G_UNICODE_COMBINING_MARK: @G_UNICODE_ENCLOSING_MARK: @G_UNICODE_NON_SPACING_MARK: @G_UNICODE_DECIMAL_NUMBER: @G_UNICODE_LETTER_NUMBER: @G_UNICODE_OTHER_NUMBER: @G_UNICODE_CONNECT_PUNCTUATION: @G_UNICODE_DASH_PUNCTUATION: @G_UNICODE_CLOSE_PUNCTUATION: @G_UNICODE_FINAL_PUNCTUATION: @G_UNICODE_INITIAL_PUNCTUATION: @G_UNICODE_OTHER_PUNCTUATION: @G_UNICODE_OPEN_PUNCTUATION: @G_UNICODE_CURRENCY_SYMBOL: @G_UNICODE_MODIFIER_SYMBOL: @G_UNICODE_MATH_SYMBOL: @G_UNICODE_OTHER_SYMBOL: @G_UNICODE_LINE_SEPARATOR: @G_UNICODE_PARAGRAPH_SEPARATOR: @G_UNICODE_SPACE_SEPARATOR: @c: @Returns: These are the possible line break classifications. See http://www.unicode.org/unicode/reports/tr14/. @G_UNICODE_BREAK_MANDATORY: @G_UNICODE_BREAK_CARRIAGE_RETURN: @G_UNICODE_BREAK_LINE_FEED: @G_UNICODE_BREAK_COMBINING_MARK: @G_UNICODE_BREAK_SURROGATE: @G_UNICODE_BREAK_ZERO_WIDTH_SPACE: @G_UNICODE_BREAK_INSEPARABLE: @G_UNICODE_BREAK_NON_BREAKING_GLUE: @G_UNICODE_BREAK_CONTINGENT: @G_UNICODE_BREAK_SPACE: @G_UNICODE_BREAK_AFTER: @G_UNICODE_BREAK_BEFORE: @G_UNICODE_BREAK_BEFORE_AND_AFTER: @G_UNICODE_BREAK_HYPHEN: @G_UNICODE_BREAK_NON_STARTER: @G_UNICODE_BREAK_OPEN_PUNCTUATION: @G_UNICODE_BREAK_CLOSE_PUNCTUATION: @G_UNICODE_BREAK_QUOTATION: @G_UNICODE_BREAK_EXCLAMATION: @G_UNICODE_BREAK_IDEOGRAPHIC: @G_UNICODE_BREAK_NUMERIC: @G_UNICODE_BREAK_INFIX_SEPARATOR: @G_UNICODE_BREAK_SYMBOL: @G_UNICODE_BREAK_ALPHABETIC: @G_UNICODE_BREAK_PREFIX: @G_UNICODE_BREAK_POSTFIX: @G_UNICODE_BREAK_COMPLEX_CONTEXT: @G_UNICODE_BREAK_AMBIGUOUS: @G_UNICODE_BREAK_UNKNOWN: @G_UNICODE_BREAK_NEXT_LINE: @G_UNICODE_BREAK_WORD_JOINER: @c: @Returns: @string: @len: @ch: @result_len: @Returns: @ch: @mirrored_ch: @Returns: Skips to the next character in a UTF-8 string. The string must be valid; this macro is as fast as possible, and has no error-checking. You would use this macro to iterate over a string character by character. The macro returns the start of the next UTF-8 character. Before using this macro, use g_utf8_validate() to validate strings that may contain invalid UTF-8. @p: Pointer to the start of a valid UTF-8 character. @p: @Returns: @p: @max_len: @Returns: @str: @offset: @Returns: @str: @pos: @Returns: @p: @Returns: @p: @end: @Returns: @bound: @str: @p: @Returns: @p: @max: @Returns: @dest: @src: @n: @Returns: @p: @len: @c: @Returns: @ch: @p: @len: @c: @Returns: @ch: @str: @len: @Returns: @str: @max_len: @end: @Returns: @str: @len: @Returns: @str: @len: @Returns: @str: @len: @Returns: @str: @len: @mode: @Returns: Defines how a Unicode string is transformed in a canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. Unicode strings should generally be normalized before comparing them. @G_NORMALIZE_DEFAULT: standardize differences that do not affect the text content, such as the above-mentioned accent representation. @G_NORMALIZE_NFD: another name for %G_NORMALIZE_DEFAULT. @G_NORMALIZE_DEFAULT_COMPOSE: like %G_NORMALIZE_DEFAULT, but with composed forms rather than a maximally decomposed form. @G_NORMALIZE_NFC: another name for %G_NORMALIZE_DEFAULT_COMPOSE. @G_NORMALIZE_ALL: beyond %G_NORMALIZE_DEFAULT also standardize the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. @G_NORMALIZE_NFKD: another name for %G_NORMALIZE_ALL. @G_NORMALIZE_ALL_COMPOSE: like %G_NORMALIZE_ALL, but with composed forms rather than a maximally decomposed form. @G_NORMALIZE_NFKC: another name for %G_NORMALIZE_ALL_COMPOSE. @str1: @str2: @Returns: @str: @len: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @str: @len: @items_written: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @str: @len: @items_read: @items_written: @error: @Returns: @c: @outbuf: @Returns: