java - Java char 以什么编码存储?

标签 java unicode character-encoding

是否保证以任何特定编码存储 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/

相关文章:

c# - 确定文本文件编码架构

java - 如何在 Java 中正确计算字符串的长度?

mysql - 将 phpbb2 latin1 DB 转换为 phpbb3 utf8 DB 的最佳选择是什么?

java - 安卓 : Determine which checkbox is checked in listview from the Main activity button

java - 检查给定路径上是否存在任何 Zip 文件

python - 如何将表示 UTF-8 字符的 int 转换为 Unicode 代码点?

django - 在 JSON 中返回纯 Django 表单错误

java - Excel 在 workspace.xlsx 中发现不可读的内容(POI - java)

java - 如何使用二分查找找到用户编号

java - 为什么这个表情符号正则表达式也匹配数字