问题:
Java中中英文分别占几个字节?如果数据量很大,或者存储空间不足的时候,可能需要考虑字节的占用大小,用于估计使用机器的数量。
方案:
很简单的:
1个字符=2个字节
1个字节=8位
1个英文字符占一个字节,也就是0.5个字符
1个中文字符占2-4个字节,这个需要区分编码情况,具体如下:
UTF8编码下: 1个中文字符占3个字节(少数占4个字节)
GBK编码下: 1个中文字符占2个字节
UTF16编码下:1个中文字符占2个字节,Unicode扩展区的一些汉字存储需要4个字节
上面其实不好记,最好的方法是放到程序里面去实际运行一下看看。
例子:
01 |
/** |
02 |
* |
03 |
* |
04 |
* |
05 |
* |
06 |
* |
07 |
* |
08 |
* |
09 |
* |
10 |
* |
11 |
*/ |
12 |
public class BytesDemo |
13 |
14 |
public static void main(String[] |
15 |
String "english" ; |
16 |
String "中文" ; |
17 |
|
18 |
byte [] |
19 |
byte [] |
20 |
|
21 |
byte [] "utf8" )); |
22 |
byte [] "utf8" )); |
23 |
|
24 |
byte [] "gbk" )); |
25 |
byte [] "gbk" )); |
26 |
|
27 |
System.out.println( "英文字符:" + |
28 |
System.out.println( "中文字符,默认(UTF8):" + |
29 |
System.out.println( "英文字符,(UTF8):" + |
30 |
System.out.println( "中文字符,(UTF8):" + |
31 |
System.out.println( "英文字符,(GBK):" + |
32 |
System.out.println( "中文字符,(GBK):" + |
33 |
} |
34 |
} |
运行结果:
时间: 2024-11-10 01:22:57