Как Swift преобразует строку в представление UTF-8? - PullRequest
0 голосов
/ 17 ноября 2018

В документации Swift обсуждается следующий код:

let dogString = "Dog‼?"
for codeUnit in dogString.utf8 {
    print("\(codeUnit) ", terminator: "")
}
print("")
// Prints "68 111 103 226 128 188 240 159 144 182 ”

Тогда упоминается, что:

«Следующие три десятичных значения codeUnit (226, 128, 188) представляют собой трехбайтовое представление UTF-8 символа DOUBLE EXCLAMATION MARK.»

Но как было получено это значение (226, 128, 188)? Какой расчет происходит за сценой?

1 Ответ

0 голосов
/ 17 ноября 2018

Четвертый символ в строке - это двойной восклицательный знак .Это кодовая точка Unicode U + 203C.

В UTF-8 эта кодовая точка преобразуется в последовательность из трех кодовых единиц (или байтов в данном случае), а именно 226, 128, 188.

Страница Википедии для UTF-8 описывает кодировку.В частности, посмотрите на пример со знаком евро (€), который также преобразуется в трехбайтовую последовательность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...