gpt4 book ai didi

java - 为什么 Java 的 `String.toCharArray()` 和 `new String(char[])` 方法不接受字符集编码?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:37 28 4
gpt4 key购买 nike

为什么 Java 的 String.toCharArray()new String(char[]) 方法不接受字符集编码?

如果您正在使用 byte[],您可以选择使用 String.getBytes(charset)new String(byte[], charset )

我想知道是否有关于 char[] 和字符集编码的问题我不明白。 Javadocs 中似乎没有什么特别之处可以解释这种差异。

最佳答案

这些方法不执行编码,它们只是表示 String 实例内部状态的副本。

编码是将逻辑字形转换为数字表示形式(一系列字节)的过程。将 String 视为表示 Unicode 字形序列。 String 类具有 API 来访问这些字形作为 32 位代码点,或作为一系列使用 UTF-16-BE 编码的 16 位值(这恰好是字符串的 native 内部表示), 或者作为选定编码中的一系列字节。你只需要在最后一种情况下指定编码。

某些编码(如 UTF-8)支持所有 Unicode 字符,而许多其他编码(如 US-ASCII)仅支持一小部分。基于 char[] 的 API 不允许指定不同的编码(UTF-16-LE 或带有 BOM 的 UTF-16),因为一个就足够了,并且促进统一性可以最大限度地减少因不匹配的编码而导致的错误.

关于java - 为什么 Java 的 `String.toCharArray()` 和 `new String(char[])` 方法不接受字符集编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752294/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com