函数

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_COMPOSEG_NORMALIZE_ALL_COMPOSE 类似于 G_NORMALIZE_DEFAULTG_NORMALIZE_ALL,但返回结果为组合形式,而非最大分解形式。如果您打算将此字符串转换为旧版编码或将其传递给具有较弱 Unicode 处理功能的系统,这通常很有用。

参数

str

类型: const gchar*

UTF-8 编码的字符串。

数据归函数调用者所有。
此值为以空值结尾的 UTF-8 字符串。
len

类型: gssize

str 的长度(以字节为单位),如果 str 以空值结尾,则为 -1。

mode

类型: GNormalizeMode

要执行的规范类型。

返回值

类型: gchar*

一个新分配的字符串,它是 str 的规范形式,如果 str 不是有效的 UTF-8,则为 NULL

函数调用者拥有该数据的所有权,并负责释放它。
返回值可以是 NULL
此值为以空值结尾的 UTF-8 字符串。