C 11 中字串文字的Unicode 編碼
C 11 中新字元和字串文字類型的引入擴展了該語言的功能處理Unicode 編碼。雖然現在有四種字元類型(char、wchar_t、char16_t、char32_t)和五種字串文字類型,但這些字元和字串與編碼機制的行為和相容性具有特定的規則。
編碼相容性
x 字元引用可用於所有字串類型,允許包含以十六進位表示的字元值。但是,u 和 U 引用僅限於具有 UTF 編碼語義的字串。字元引用根據包含字串的編碼進行轉換。
字串長度和編碼
儘管字串中包含的Unicode 代碼單元的數量可能會有所不同,取決於在編碼中,表示字串文字的陣列是固定寬度的,每個元素表示一個代碼單元。使用的代碼單元數量由字串的 Unicode 編碼決定。
UTF 編碼語意
u"" 字串文字專門採用 UTF-16 編碼,而 u8"" 字串文字以 UTF-8 編碼。 UTF-16 編碼使用 char16_t 代碼單元,而 UTF-8 編碼使用可變長度位元組序列來表示代碼點。
單獨代理
單獨代理 (0xD800- 0xDFFF) 不允許作為 u 序列中的代碼點。必須使用 UTF-16 代理對來表示此範圍內的 Unicode 字元。
編碼意識
標準字串操作函數本身並未處理 Unicode 編碼語意並處理 UTF - 將字串編碼為一系列單獨的程式碼單元。但是,透過區域設定的輸入和輸出流允許透過適當的上下文讀取和寫入 Unicode 編碼值。
以上是C 11 字串文字如何處理不同的 Unicode 編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!