Что означает «несуррогатная кодовая точка Unicode» в Unicode? - PullRequest
0 голосов
/ 19 января 2019

Существует правило, которое гласит: «Разыменование необработанного указателя должно приводить к правильной несуррогатной кодовой точке Unicode» в Rust.

Я не понимаю, что здесь означает "несуррогатный". Что я знаю, так это то, что UTF-8 имеет кодовые точки переменной длины, так что Vec<u8> не может быть преобразован непосредственно в UTF-8, и требуется "дополнение".

1 Ответ

0 голосов
/ 19 января 2019

В Unicode кодовые точки от U + D800 до U + DFFF называются суррогатами . Они зарезервированы для использования UTF-16 , и вы не можете использовать их для чего-либо еще.

Тип Rust char представляет абстрактную кодовую точку и не привязан к какой-либо конкретной кодировке, поэтому сохранение суррогата UTF-16 в char не имеет смысла.

...