3_11_GLib库入门与实践_字符集、字符编码及国际化

本文详细介绍了GLib库中用于字符集转换、编码操作和国际化的函数,包括GIConv结构、字符集转换函数如g_convert和g_locale_to_utf8,以及字符验证、类型判断和编码转换等实用工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

GLib提供了字符集转换、字符编码操作和国际化操作函数。

数据结构

字符集转换GIConv的数据结构是不透明结构体,只能作为整体使用,无法单独引用其内部成员。

typedef struct _GIConv *GIConv;

字符编码操作和国际化都是对字符或字符串的操作,没有专门的数据结构类型。

函数列表

字符集转换
gchar *	g_convert ()
gchar *	g_convert_with_fallback ()
gchar *	g_convert_with_iconv ()
GIConv	g_iconv_open ()
gsize	g_iconv ()
gint	g_iconv_close ()
gchar *	g_locale_to_utf8 ()
gchar *	g_filename_to_utf8 ()
gchar *	g_filename_from_utf8 ()
gboolean	g_get_filename_charsets ()
gchar *	g_filename_display_name ()
gchar *	g_filename_display_basename ()
gchar *	g_locale_from_utf8 ()
gboolean	g_get_charset ()
gchar *	g_get_codeset ()
字符编码操作函数(unicode和utf-8)
gboolean	g_unichar_validate ()
gboolean	g_unichar_isalnum ()
gboolean	g_unichar_isalpha ()
gboolean	g_unichar_iscntrl ()
gboolean	g_unichar_isdefined ()
gboolean	g_unichar_isdigit ()
gboolean	g_unichar_isgraph ()
gboolean	g_unichar_islower ()
gboolean	g_unichar_ismark ()
gboolean	g_unichar_isprint ()
gboolean	g_unichar_ispunct ()
gboolean	g_unichar_isspace ()
gboolean	g_unichar_istitle ()
gboolean	g_unichar_isupper ()
gboolean	g_unichar_isxdigit ()
gboolean	g_unichar_iswide ()
gboolean	g_unichar_iswide_cjk ()
gboolean	g_unichar_iszerowidth ()
gunichar	g_unichar_toupper ()
gunichar	g_unichar_tolower ()
gunichar	g_unichar_totitle ()
gint	g_unichar_digit_value ()
gint	g_unichar_xdigit_value ()
gboolean	g_unichar_compose ()
gboolean	g_unichar_decompose ()
gsize	g_unichar_fully_decompose ()
GUnicodeType	g_unichar_type ()
GUnicodeBreakType	g_unichar_break_type ()
gint	g_unichar_combining_class ()
void	g_unicode_canonical_ordering ()
gunichar *	g_unicode_canonical_decomposition ()
gboolean	g_unichar_get_mirror_char ()
GUnicodeScript	g_unichar_get_script ()
GUnicodeScript	g_unicode_script_from_iso15924 ()
guint32	g_unicode_script_to_iso15924 ()
#define	g_utf8_next_char()
gunichar	g_utf8_get_char ()
gunichar	g_utf8_get_char_validated ()
gchar *	g_utf8_offset_to_pointer ()
glong	g_utf8_pointer_to_offset ()
gchar *	g_utf8_prev_char ()
gchar *	g_utf8_find_next_char ()
gchar *	g_utf8_find_prev_char ()
glong	g_utf8_strlen ()
gchar *	g_utf8_strncpy ()
gchar *	g_utf8_strchr ()
gchar *	g_utf8_strrchr ()
gchar *	g_utf8_strreverse ()
gchar *	g_utf8_substring ()
gboolean	g_utf8_validate ()
gchar *	g_utf8_make_valid ()
gchar *	g_utf8_strup ()
gchar *	g_utf8_strdown ()
gchar *	g_utf8_casefold ()
gchar *	g_utf8_normalize ()
gint	g_utf8_collate ()
gchar *	g_utf8_collate_key ()
gchar *	g_utf8_collate_key_for_filename ()
gunichar2 *	g_utf8_to_utf16 ()
gunichar *	g_utf8_to_ucs4 ()
gunichar *	g_utf8_to_ucs4_fast ()
gunichar *	g_utf16_to_ucs4 ()
gchar *	g_utf16_to_utf8 ()
gunichar2 *	g_ucs4_to_utf16 ()
gchar *	g_ucs4_to_utf8 ()
gint	g_unichar_to_utf8 ()
国际化
#define	Q_()
#define	C_()
#define	N_()
#define	NC_()
const gchar *	g_dgettext ()
const gchar *	g_dcgettext ()
const gchar *	g_dngettext ()
const gchar *	g_dpgettext ()
const gchar *	g_dpgettext2 ()
const gchar *	g_strip_context ()
const gchar * const *	g_get_language_names ()
gchar **	g_get_locale_variants ()

函数功能分类

字符集转换
// 将字符串从一种字符集转换成另一种字符集
gchar *	g_convert ()
gchar *	g_convert_with_fallback ()
gchar *	g_convert_with_iconv ()

// iconv封装函数
GIConv	g_iconv_open ()
gsize	g_iconv ()
gint	g_iconv_close ()

// 文件名与utf-8的转换
gchar *	g_filename_to_utf8 ()
gchar *	g_filename_from_utf8 ()

// 获取文件名的字符集
gboolean	g_get_filename_charsets ()

// 文件名展示
gchar *	g_filename_display_name ()
gchar *	g_filename_display_basename ()

// 本地化字符转utf-8字符
gchar *	g_locale_from_utf8 ()
gchar *	g_locale_to_utf8 ()

// 获取字符集
gboolean	g_get_charset ()

// 获取编码集
gchar *	g_get_codeset ()
字符编码操作函数(unicode和utf-8)
// 字符类型识别
gboolean	g_unichar_validate ()
gboolean	g_unichar_isalnum ()
gboolean	g_unichar_isalpha ()
gboolean	g_unichar_iscntrl ()
gboolean	g_unichar_isdefined ()
gboolean	g_unichar_isdigit ()
gboolean	g_unichar_isgraph ()
gboolean	g_unichar_islower ()
gboolean	g_unichar_ismark ()
gboolean	g_unichar_isprint ()
gboolean	g_unichar_ispunct ()
gboolean	g_unichar_isspace ()
gboolean	g_unichar_istitle ()
gboolean	g_unichar_isupper ()
gboolean	g_unichar_isxdigit ()
gboolean	g_unichar_iswide ()
gboolean	g_unichar_iswide_cjk ()
gboolean	g_unichar_iszerowidth ()

// 字符大小写转换
gunichar	g_unichar_toupper ()
gunichar	g_unichar_tolower ()
gunichar	g_unichar_totitle ()

// 获取到对应的十进制或十六进制形式的数字
gint	g_unichar_digit_value ()
gint	g_unichar_xdigit_value ()


gboolean	g_unichar_compose ()
gboolean	g_unichar_decompose ()
gsize	g_unichar_fully_decompose ()
GUnicodeType	g_unichar_type ()
GUnicodeBreakType	g_unichar_break_type ()
gint	g_unichar_combining_class ()
void	g_unicode_canonical_ordering ()
gunichar *	g_unicode_canonical_decomposition ()
gboolean	g_unichar_get_mirror_char ()
GUnicodeScript	g_unichar_get_script ()
GUnicodeScript	g_unicode_script_from_iso15924 ()
guint32	g_unicode_script_to_iso15924 ()
#define	g_utf8_next_char()
gunichar	g_utf8_get_char ()
gunichar	g_utf8_get_char_validated ()
gchar *	g_utf8_offset_to_pointer ()
glong	g_utf8_pointer_to_offset ()
gchar *	g_utf8_prev_char ()
gchar *	g_utf8_find_next_char ()
gchar *	g_utf8_find_prev_char ()

// utf-8字符串操作函数
glong	g_utf8_strlen ()
gchar *	g_utf8_strncpy ()
gchar *	g_utf8_strchr ()
gchar *	g_utf8_strrchr ()
gchar *	g_utf8_strreverse ()
gchar *	g_utf8_substring ()
gboolean	g_utf8_validate ()
gchar *	g_utf8_make_valid ()
gchar *	g_utf8_strup ()
gchar *	g_utf8_strdown ()
gchar *	g_utf8_casefold ()
gchar *	g_utf8_normalize ()
gint	g_utf8_collate ()
gchar *	g_utf8_collate_key ()
gchar *	g_utf8_collate_key_for_filename ()

// 编码格式转换
gunichar2 *	g_utf8_to_utf16 ()
gunichar *	g_utf8_to_ucs4 ()
gunichar *	g_utf8_to_ucs4_fast ()
gunichar *	g_utf16_to_ucs4 ()
gchar *	g_utf16_to_utf8 ()
gunichar2 *	g_ucs4_to_utf16 ()
gchar *	g_ucs4_to_utf8 ()
gint	g_unichar_to_utf8 ()
国际化
// 与gettext功能相似的一组函数
#define	Q_()
#define	C_()
#define	N_()
#define	NC_()
const gchar *	g_dgettext ()
const gchar *	g_dcgettext ()
const gchar *	g_dngettext ()
const gchar *	g_dpgettext ()
const gchar *	g_dpgettext2 ()
const gchar *	g_strip_context ()
const gchar * const *	g_get_language_names ()
gchar **	g_get_locale_variants ()

函数功能说明及综合演示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值