Почему Юникод включен в качестве кодировки в String API Swift?

Я прочитал этот очень важный блог о строковых кодировках.

Прочитав его, я понял, что юникод - это стандарт отображения символов в кодовые точки, которые являются целыми числами. Как эти целые числа хранятся в памяти, это совершенно другое понятие. Это где .utf8, .utf16 вступить в игру, определяя, как мы храним эти целые числа в памяти.

Свифт String API есть метод, который дает нам байты данных, используемые для представления String в различных кодировках:

func data(using encoding: String.Encoding, allowLossyConversion: Bool = false) -> Data?

Первый параметр этого метода имеет тип String.Encoding, Эта структура Encoding имеет кодировку, объявленную как:

static let unicode: String.Encoding

Теперь неожиданно метод может дать мне представление данных String используя кодировку .unicode

Теперь это фактически противоположно тому, что я сделал после прочтения упомянутого блога. Это дает мне представление данных о строке, даже если мыслить Unicode не дает мне подробностей о том, как она может быть сохранена.

Кто-нибудь может сказать мне, что мне здесь не хватает? Я действительно смущен сейчас.

1 ответ

Решение

String.Encoding.unicode такой же как String.Encoding.utf16

print(String.Encoding.unicode)
print(String.Encoding.utf16)

Вышеуказанные отпечатки:

  • Юникод (UTF-16)
  • Юникод (UTF-16)
Другие вопросы по тегам