在C程序中,我想按Unicode代码点顺序对有效的UTF-8编码字符串列表进行排序。没有根据地域的排序。
因此,我需要一个比较函数。编写这样的函数很容易,只需迭代Unicode字符即可。(我恰好使用GLib,所以我会用
但是,出于好奇、可能的简单性和效率,我想知道:一个简单的逐字节
但也许我漏掉了什么?提前感谢您。
因此,我需要一个比较函数。编写这样的函数很容易,只需迭代Unicode字符即可。(我恰好使用GLib,所以我会用
g_utf8_next_char
迭代并比较g_utf8_next_char
的返回值。)但是,出于好奇、可能的简单性和效率,我想知道:一个简单的逐字节
strcmp
(或g_strcmp
)是否真的能完成同样的工作?我认为应该可以,因为UTF-8首先编码最高位字节,并且需要在N+1个字节中编码的代码点将具有比需要在N个字节中编码的代码点更大的初始字节。但也许我漏掉了什么?提前感谢您。
:-)
- skagedal