将UTF-8字符推进到下一个字符

use*_*549 3 c string encoding glib utf-8

我想更改UTF-8字符(在gchar数组中),因此它根据标准获取下一个字符的值.我正在使用glib,我没有看到这样的功能.我正在考虑一个可能的解决方案,但它可能需要更多的努力,当然它不会是最有效的,因为我不太了解编码.有没有可以做到这一点的图书馆?谷歌搜索没有帮助.

R..*_*R.. 6

这基本上只是加载和进位模64.将字符的字节视为"数字".您递增最后一个字节,如果它溢出,则将其重置为可能的最小值,并递增倒数第二个字节.

例如,一个简单的增量:

e0 b0 be -> e0 b0 bf
Run Code Online (Sandbox Code Playgroud)

单次携带的增量:

e0 b0 bf -> e0 b1 80
Run Code Online (Sandbox Code Playgroud)

双进位增量:

e0 bf bf -> e1 80 80
Run Code Online (Sandbox Code Playgroud)

当你增加超过给定大小的最后一个字符时,你需要转到下一个大小的第一个字符,这当然不能在字符串的中间就地完成.