Описание тега surrogate-pairs
Символы Юникода с кодом выше 0xFFFF кодируются в UTF-16 парами 16-битных кодовых единиц, называемых ** суррогатными парами **.
Символы Юникода за пределами базовой многоязычной плоскости, то есть символы с кодом выше 0xFFFF, кодируются в UTF-16 парами 16-битных единиц кода, называемыми суррогатными парами, по следующей схеме:
- 0x010000 вычитается из кодовой точки, оставляя 20-битное число в диапазоне 0..0x0FFFFF;
- первые десять битов (число в диапазоне 0..0x03FF) добавляются к 0xD800, чтобы получить первую кодовую единицу или старший суррогат, который будет находиться в диапазоне 0xD800..0xDBFF;
- младшие десять битов (также в диапазоне 0..0x03FF) добавляются к 0xDC00, чтобы получить вторую кодовую единицу или младший суррогат, который будет находиться в диапазоне 0xDC00..0xDFFF.