簡體   English   中英

為什么在Swift的String API中將Unicode包含為編碼?

[英]Why is unicode included as an Encoding in Swift's String API?

我讀了這個非常重要的有關字符串編碼的博客

閱讀后,我意識到unicode是將字符映射到整數的代碼點的標准。 這些整數如何存儲在內存中是一個完全不同的概念。 這就是.utf8.utf16發揮作用的地方,它定義了我們將這些整數存儲在內存中的方式。

在Swift String API中,有一種方法可以為我們提供用於以各種編碼表示String的數據字節:

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

此方法的第一個參數是String.Encoding類型。 此結構Encoding的編碼聲明為:

static let unicode: String.Encoding

現在突然之間,該方法可以使用編碼.unicode給我String數據表示.unicode

現在,這實際上與我閱讀上述博客后得出的結論相反。 它為我提供了字符串的數據表示形式,甚至以為unicode並沒有為我提供如何存儲它的詳細信息。

有人可以告訴我我在這里想念什么嗎? 我現在真的很困惑。

String.Encoding.unicodeString.Encoding.utf16相同

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

上面的照片:

  • Unicode(UTF-16)
  • Unicode(UTF-16)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM