gpt4 book ai didi

java - java中编码被误解

转载 作者:行者123 更新时间:2023-11-30 04:08:39 26 4
gpt4 key购买 nike

我无法理解有关编码的一个棘手问题。

为什么当您将字符串增加 2(两倍)时,它的长度会增加 1.5。

代码:

public class Appl {
public static void main(String[] args) throws Exception {

System.out.println("A".getBytes("UTF-16").length);
System.out.println("AA".getBytes("UTF-16").length);
}
}

输出将是:

4
6

这可能看起来有点傻,但我不明白为什么会发生这种情况。

有什么建议吗?

最佳答案

UTF-16 编码使用可选的 byte-order mark来识别字节顺序。请参阅Charset不同字符集信息的类。

例如,如果您使用 UTF-16BE - (BigEndian),您将获得预期的结果:

System.out.println("A".getBytes("UTF-16BE").length);   // 2 (2 + 2 with UTF-16)
System.out.println("AA".getBytes("UTF-16BE").length); // 4 (2 + 4 with UTF-16)
System.out.println("AAA".getBytes("UTF-16BE").length); // 6 (2 + 6 with UTF-16)

关于java - java中编码被误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161910/

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