Как определить, есть ли у суррогата wchar_t (UTF-16)?

Я видел несколько других постов по этой проблеме, но не смог найти никаких деталей о том, как программно определить, использует ли кодовая точка более одного 2-байтового (в Windows) wchar_t.

Пример:

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

Я хотел бы знать, как определить, когда символ будет иметь длину () > 1.

1 ответ

Любая кодовая точка выше U+FFFF использует суррогаты в своей кодировке UTF-16. Суррогатные значения находятся в диапазоне D800-DFFF.

Другие вопросы по тегам