Мне показалось, что я хорошо понимаю скаляры Юникода в Swift, но смайлик с собачьей мордой доказал, что я не прав.
for code in "?".utf16 {
print(code)
}
Коды UTF-16: 55357
и 56374
. В гексах это d83d
и dc36
.
Сейчас:
let dog = "\u{d83d}\u{dc36}"
Вместо того, чтобы получить строку с "getting", я получаю ошибку:
Неверный скаляр Unicode
Я пытался с кодами UTF-8, и он тоже не работал. Не выдает ошибку, а возвращает «¶¶» вместо собачьего лица.
Что здесь не так?