GNU libunistring 是否有一个 API 来确定一个值是否是 UTF16 代理项?我是这个图书馆的新手,找不到。有人可以帮忙吗?
最佳答案
也许 uc_general_category()
就是您要找的。如果您向它传递一个 UTF-16 代码单元,编译器会将 16 位值扩展为 32 位,并且该函数会将其按原样解释为代码点。代码点 U+D800 - U+DFFF 仅为代理项保留,因此该函数应为任何 UTF-16 代理项代码单元返回 UC_SURROGATE
。非代理代码单元与其在 BMP 中的相应代码点具有相同的数值(仅 BMP 之外的代码点需要代理项),因此该函数将返回其他内容。
关于c - 确定 UTF16 值是 libunistring 中的代理项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081261/