Следующий пример взят из Strings and Characters documentation:Как конвертировать суррогатную пару в скаляр Unicode в Swift
Значения 55357
(U+D83D
в шестнадцатеричном) и 56374
(U+DC36
в шестнадцатеричном) являются суррогатными парами которые образуют скаляр Unicode U+1F436
, который является символом DOG FACE
. Есть ли способ пойти в другую сторону? То есть, могу ли я преобразовать суррогатную пару в скаляр?
Я попытался
let myChar: Character = "\u{D83D}\u{DC36}"
, но я получил ошибку "Invalid Unicode скалярную".
This Objective C answer10 и this project, по-видимому, являются обычными решениями, но есть ли что-либо встроенное в Swift (особенно Swift 2.0+), которое это делает?
Укажите код: '\ И {1F436}'. В документе вы ссылаетесь на 'let sparklingHeart =" \ u {1F496} "//, Unicode-скаляр U + 1F496' – nhahtdh
Что делать, если я не знаю полной кодовой точки? То есть, если я знаю только суррогатные пары? – Suragch
'String' имеет' init? (_ Utf16: String.UTF16View) 'метод, но я еще не нашел, как * create * a' String.UTF16View' из заданного массива. - Аналогичный вопрос (с возможными решениями) находится здесь: [Есть ли способ создать строку из массива utf16 в swift?] (Http://stackoverflow.com/questions/24542170/is-there-a-way-to -create-а-строковое из-utf16-массив-в-Swift). –