2013-04-18 1 views
1

Я видел несколько других сообщений по этой проблеме, но не смог найти каких-либо подробностей о том, как определить программно, если код использует более двух двухбайтовых (в Windows) wchar_t.Как определить, есть ли у wchar_t суррогат (UTF-16)?

Пример:

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

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

+0

Просто проверьте правильные диапазоны в соответствии с кодировкой UTF-16 (легко для Google). Скорее всего, вы не найдете ничего более сложного. –

ответ

4

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

+0

отлично, спасибо. Это работает! – user2295995

Смежные вопросы