java - 在 Java 中将 char 表示为一个字节

标签 java arrays char byte

我必须将 char 转换为字节或字节数组。在其他语言中,我知道 char 只是一个字节。但是,查看 Java Character 类,它的最小值是\u0000,最大值是\uFFFF。这使得 char 看起来像 2 个字节长。

我可以将其存储为一个字节还是需要将其存储为两个字节?

在有人问之前,我会说我正在尝试这样做,因为我正在一个接口(interface)下工作,该接口(interface)期望我的结果是一个字节数组。所以我必须将我的 char 转换为一个。

请让我知道并帮助我理解这一点。

谢谢, jbu

最佳答案

要将字符转换为字节,您需要指定 character encoding .一些字符编码每个字符使用一个字节,而另一些则使用两个或更多字节。事实上,对于许多语言来说,用一个字节编码的字符太多了。

在 Java 中,从字符转换为字节的最简单方法是使用 String 类的 getBytes(Charset)方法。 (StandardCharsets 类定义了一些常见的编码。)但是,如果字符无法在指定的编码下映射,此方法将默默地用 � 替换字符。如果需要更多控制,可以配置CharsetEncoder处理这种有错误的情况或使用不同的替换字符。

关于java - 在 Java 中将 char 表示为一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/699319/

相关文章:

java - 使用随机整数创建多维数组

c - "different width due to prototype"警告是什么意思?

java - 使用扫描仪和循环读取文件时出现问题

java - 在 'normal' Java 应用程序和 Web 应用程序中运行良好的库关闭例程

javascript - 我可以在不编写循环的情况下声明嵌套在对象集合中的值数组吗?

将十进制数转换为其二进制表示形式的 char 数组 :

vba - 在代码中插入撇号或引号

java - 有没有免费的java开源应用程序可以监控网站状态?

java - 如何使用自动线程管理在Java中实现生产者/消费者

Javascript 无法推送到函数内部的全局数组