如何判断wchar_t是否有代理(UTF-16)

how to tell if a wchar_t has a surrogate (UTF-16)?

本文关键字:是否 代理 UTF-16 wchar 何判断 判断      更新时间:2023-10-16

我看过一些关于这个问题的其他帖子,但无法找到关于如何以编程方式确定一个代码点是否使用多个2字节(在Windows上)wchar_t的任何细节。

一个例子:

const wchar_t* s2 = L"U0002008A"; // The "Han" character
std::wstring in(s2);               // length() == 2

我想知道如何确定当一个字符将有一个长度()> 1

U+FFFF以上的任何代码点都在其UTF-16编码中使用代理。代理值的范围是D800-DFFF。