你可以計算一個UTF16編碼代表1,120,064數字,按permuations/commbinations?UTF16字符總數
回答
Unicode標準是3.9節說:
每個編碼格式映射Unicode碼點U + 0000..U + D7FF和U + E000..U + 10FFFF轉換爲唯一的代碼單元序列。
因此的碼點( '字符'),其可以由UTF-16表示的數目是
0xD7FF + 1 + (0x10FFFF - 0xE000) + 1 = 1 112 064
Unicode標準通常的32位是。但是,特定的編碼會保留較小的位數,以表示最常見的字符對它們可以合法表示的字符的實際數量施加特定的限制。爲了允許更長的比特序列反過來允許描述比8(UTF-8)或16(UTF-16)比特特殊代理點更長的描述碼點。
此外,能夠代表給定編碼中給定的代碼點並不意味着它是有效的 - 它必須首先由UNICODE標準進行分配和描述。因此,沒有數學公式可以產生可以表示的字符數,數字1 112 064並不一定意味着有1M個有效字符。
有關詳細討論,請參見UNICODE標準的section 3.9。
不可以。用UTF-16表示的字符數只能通過規範知道,而不能通過數學知道。 UTF-16是人們制定的一組特定的編碼規則,而不是某些公式的固有屬性。
看到這裏https://stackoverflow.com/questions/280182/
答案這幾乎是作爲規範好,好,它結合了一些規範。我會引用:
UTF-16是一個可變長度的代碼;其字符消耗2或4個字節。 0xD800-0xDFFF範圍內的2字節值保留用於構造4字節字符,並且所有4字節字符由範圍爲0xD800-0xDBFF的兩個字節組成,後面跟着2個字節,範圍爲0xDC00-0xDFFF。因此,Unicode不會在U + D800-U + DFFF範圍內分配任何字符。
容量UTF-16的:1112064
您可以在UTF-16中表示1112064標量值,因爲標準的3.9節定義D76定義了1112064個標量值,並且由於UTF-16編碼形式(如所有Unicode編碼形式)是唯一的表示所有Unicode標量值,如定義D79中所定義。
D76 - Unicode標值:除了高代理和低代理代碼點任何Unicode代碼點。
- 作爲該定義的結果,Unicode標量值的集合由範圍0到D7FF和E000到10FFFF(含)組成。
D79 - 甲Unicode編碼形式給每個Unicode標值一個唯一的編碼單元序列。
當然,由於在定義D91中規定了代理對編碼機制,這些數字並不完全是任意的。給定表3-5中的位分佈,就沒有辦法對高於10FFFF的標量值進行編碼。
有三種UTF-16代碼單元:
- 高的替代物(U + D800到U + DBFF)。這些有1024個。
- 低代用品(U + DC00至U + DFFF)。這些有1024個。
- BMP中可直接表示的字符。這些有65536-2 * 1024 = 63488。
有1024×1024 = 1,048,576可以通過代理(「補充字符」U + 10000到U + 10FFFF)來表示。在BMP中添加63,488個可表示字符並獲得1,112,064。
- 1. 字符串和UTF16
- 2. URL編碼ASCII/UTF16字符
- 3. UTF16如何編碼字符?
- 4. PDFBox UTF16字母
- 5. UTF16字符串轉爲正常文本
- 6. 將響應字符串轉換爲utf16
- 7. 檢查UTF16字符串中的所有字符是否有效?
- 8. 輸出字符串字符的總數
- 9. 計數的字母總數字符串
- 10. 轉換MySQL數據庫UTF16
- 11. 將一個UTF8字符串轉換爲一個UTF16字符串在c + +
- 12. BufferedReader返回ISO-8859-15字符串 - 如何轉換爲UTF16字符串?
- 13. 顯示字符總數和字數總和
- 14. 如何將UTF8字符串轉換爲UTF16
- 15. 讀取/存儲不同類型的字符串(utf8/utf16/ansi)
- 16. 在Java腳本中解碼UTF16編碼的字符串(URL)
- 17. 如何讀取utf16文本文件在golang中的字符串?
- 18. Perl UTF8到UTF16的轉換錯誤 - 寬字符
- 19. 在Android的textview中顯示UTF16-LE編碼的字符串
- 20. .net字符串類型 - 默認是utf16嗎?
- 21. 簡單的UTF8-> UTF16字符串轉換與iconv
- 22. 打開瀏覽器從java與kyrillic字符(utf16?)
- 23. 壓縮unicode(utf16)字符串的短緩衝區
- 24. utf16 vs utf-16
- 25. Jackson Json UTF16
- 26. PHP字符串和數字總和
- 27. 字符串內的總數字
- 28. 字符串與數字的總和
- 29. 將UTF16作爲字節讀取
- 30. 數列中的字符串總數
請展開:因爲它沒有任何意義。 – Richard 2011-02-13 12:27:55
至於UTF-8,已知代表2^31個可能的字符。我在考慮是否應用公式來計算可能的UTF-16字符數。 – user4344 2011-02-13 12:30:54