c - 确定 UTF16 值是 libunistring 中的代理项

标签 c unicode

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/

相关文章:

c - 判断指针是否映射到当前进程

c - 如何在 C 中将 char 数组复制到 char 指针?

java - 什么是需要 UTF-16 代理项对的好的 Unicode 代码点?

c++ - Unicode 不打印

c - 重新描述标准输出和标准输入

C语言、数组、指针

c - scanf 字符串 - C 语言

c++ - 为什么将 char16_t 定义为具有与 uint_least16_t 相同的大小而不是 uint16_t?

python - 使用python从sqlite db读取unicode

string - Unicode 字符串到 Unicode 字符,Python 3