Почему Юникод включен в качестве кодировки в 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)