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