gpt4 book ai didi

java - java中英文和汉字占多少字节?

转载 作者:行者123 更新时间:2023-12-04 14:08:20 26 4
gpt4 key购买 nike

import java.io.UnsupportedEncodingException;

public class TestChar {

public static void main(String[] args) throws UnsupportedEncodingException {
String cnStr = "龙";
String enStr = "a";
byte[] cnBytes = cnStr.getBytes("UTF-8");
byte[] enBytes = enStr.getBytes("UTF-8");

System.out.println("bytes size of Chinese:" + cnBytes.length);
System.out.println("bytes size of English:" + enBytes.length);

// in java, char takes two bytes, the question is:
char cnc = '龙'; // will '龙‘ take two or three bytes ?
char enc = 'a'; // will 'a' take one or two bytes ?
}
}

输出 :
   bytes size of Chinese:3

bytes size of English:1

这里,我的JVM设置为UTF-8,从输出中我们知道汉字'龙'占用3个字节,英文字符'a'占用一个字节。我的问题是:

在Java中,char占两个字节,这里,char cnc = '龙'; char enc = 'a'; cnc 只需要两个字节而不是 3 个字节吗? 'a' 需要两个字节而不是一个字节?

最佳答案

的代码点值是 40857。它适合一个字符的两个字节。

以 UTF-8 编码需要 3 个字节,因为并非所有 2 字节序列在 UTF-8 中都有效。

关于java - java中英文和汉字占多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59039660/

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