Javas char是16位,但Unicode有更多的字符 - Java如何處理?Java 16位字符如何支持Unicode?
回答
Java字符串是UTF-16(大端),所以Unicode代碼點可以是一個或兩個字符。在此編碼下,Java可使用字符0xD835 0xDD0A
(字符串文字"\uD835\uDD0A"
)表示代碼點U + 1D50A(MATHEMATICAL FRAKTUR CAPITAL G)。 Character類提供了用於轉換代碼點/從代碼點轉換的方法。
// Unicode code point to char array
char[] math_fraktur_cap_g = Character.toChars(0x1D50A);
在計算中,UTF-16(16位 UCS/Unicode轉換格式)是 Unicode的可變長度字符編碼 ,能編碼 整個Unicode劇目。 編碼形式將每個字符映射到一個16位字的序列 。字符 被稱爲代碼點,而16位字被稱爲代碼單元。 對於基本文字 多語言平面(BMP),得到的 編碼是一個單一的16位字。對於其他平面中的 字符, 編碼將產生一對 16位字,一起稱爲 替代對。無論代碼點是什麼,除了替代碼點 U + D800-U + DFFF(它們不是 個字符)以外,所有可能的代碼 指向UTF-16的唯一地址映射爲U + 0000至U + 10FFFF, 當前或未來的人物分配 或使用。
請參閱我以前的答案,以瞭解如何正確地遍歷Java字符串中的所有字符。 http://stackoverflow.com/questions/1527856/how-can-i-iterate-through-the-unicode-codepoints-of-a-java-string/1527891#1527891 – 2009-12-21 18:02:05
Java對字符串使用UTF-16 - 基本上意味着字符的寬度是可變的。它們中的大多數適合16位,但基本多語言窗格之外的那些佔用32位。這與UTF-8方案非常相似。
- 1. IronPython的弦上的16位Unicode字符
- 2. 從TCHAR轉換爲字符*在Unicode中支持unicode字符
- 3. 支持FPDF庫中的unicode字符
- 4. 支持Unicode的字符串(1)程序
- 5. 存儲過程來支持Unicode字符
- 6. 在java和python中支持Unicode字符串
- 7. 在linux和gcc中支持16位wchar_t
- 8. 如何檢測.NET 4.0中的EBCDIC是否支持Unicode字符?
- 9. 如何使用不支持Unicode字符的庫
- 10. python unicode支持
- 11. C11 Unicode支持
- 12. InstallShield2009 Unicode支持
- 13. android支持unicode?
- 14. 如何在Delphi 2010中使用串口發送Unicode字符(16位)?
- 15. Java版本支持的Unicode版本6
- 16. Java中支持Unicode的CSV解析器
- 17. Android 2.3 Unicode支持
- 18. Vim不支持unicode?
- 19. Lucene支持Unicode嗎?
- 20. Unicode不支持vb6
- 21. Unicode支持在VB.net
- 22. 找出.NET 2.0中字體支持的Unicode字符
- 23. 支持在slu fields字段中的Unicode字符
- 24. python3 pySerial TypeError:不支持unicode字符串,請編碼爲字節:
- 25. 我如何在靜態庫(.lib)中支持Unicode和多字節字符集?
- 26. 我如何在我的代碼中支持Unicode和多字節字符集?
- 27. XML Unicode標識符/ .NET支持
- 28. java如何寫0x13 unicode字符?
- 29. Android Widget Shadow支持API 16
- 30. 如何將Unicode支持添加到CRichEditCtrl?
爲什麼我們不使用'int'類型' math_fraktur_cap_g'讀取非BMP的代理對?如[這裏]所述(https://stackoverflow.com/a/13112474/3317808) – overexchange 2017-11-09 06:54:43