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