函数
GLibutf8_normalize
声明 [src]
gchar*
g_utf8_normalize (
const gchar* str,
gssize len,
GNormalizeMode mode
)
说明 [src]
将字符串转换为规范形式,标准化诸如带有重音符号的字符表示为基础字符和组合重音符号还是表示为单个预先组合字符此类问题。此字符串必须是有效的 UTF-8,否则将返回 NULL
。您通常应在比较两个 Unicode 字符串前调用 g_utf8_normalize()
。
规范模式 G_NORMALIZE_DEFAULT
仅标准化不影响文本内容的差异,如上文提及的重音符号表示。G_NORMALIZE_ALL
也标准化 Unicode 中的“兼容”字符,如 SUPERSCRIPT THREE 到标准形式(此例中为 DIGIT THREE)。格式信息可能会丢失,但对于大多数文本操作来说,这些字符应被视为相同。
G_NORMALIZE_DEFAULT_COMPOSE
和 G_NORMALIZE_ALL_COMPOSE
类似于 G_NORMALIZE_DEFAULT
和 G_NORMALIZE_ALL
,但返回结果为组合形式,而非最大分解形式。如果您打算将此字符串转换为旧版编码或将其传递给具有较弱 Unicode 处理功能的系统,这通常很有用。
参数
str
-
类型:
const gchar*
以 UTF-8 编码的字符串。
数据归函数调用者所有。 此值为以空值结尾的 UTF-8 字符串。 len
-
类型:
gssize
str
的长度(以字节为单位),如果str
以空值结尾,则为 -1。 mode
-
类型:
GNormalizeMode
要执行的规范类型。