在 C 程序中,我想按 Unicode 代码点顺序对有效的 UTF-8 编码字符串列表进行排序。没有排序规则,没有语言环境意识。
所以我需要一个比较功能。编写这样一个遍历 unicode 字符的函数很容易。(我碰巧在使用GLib,所以我会迭代g_utf8_next_char
并比较 的返回值g_utf8_next_char
。)
但出于好奇以及可能的简单性和效率,我想知道的是:一个简单的逐字节strcmp
(或g_strcmp
)实际上会做同样的工作吗?我认为它应该,因为 UTF-8首先编码最高有效位,并且需要以 N+1 字节编码的代码点将具有比需要以 N 字节编码的代码点更大的初始字节。
但也许我错过了什么?提前致谢。