是否保证以任何特定编码存储 Java char 类型?
编辑:我错误地表述了这个问题。我想问的是,char 文字是否保证使用任何特定的编码?
最佳答案
“存储”在哪里? Java 中的所有字符串都是 represented in UTF-16 .当写入文件、通过网络发送或其他任何内容时,它会使用您指定的任何字符编码发送。
编辑:特别是对于 char
类型,请参阅 Character docs .具体来说:“char 数据类型……基于原始的 Unicode 规范,该规范将字符定义为固定宽度的 16 位实体。”因此,将 char
转换为 int
将始终为您提供 UTF-16 值如果 char
实际上包含一个字符来自那个字符集。如果您只是将一些随机值插入 char
,它显然不一定是有效的 UTF-16 字符,同样如果您使用错误的编码读取字符。文档继续讨论补充的 UTF-16 字符如何只能由 int
表示,因为 char
没有足够的空间来容纳它们,如果您在这个级别运行,熟悉这些语义可能很重要。
关于java - Java char 以什么编码存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019504/