java一个tab java一个字符占几个字节

您所在的位置:网站首页 中文符号占几个字符数 java一个tab java一个字符占几个字节

java一个tab java一个字符占几个字节

2023-05-21 08:19| 来源: 网络整理| 查看: 265

问题:

    Java中中英文分别占几个字节?如果数据量很大,或者存储空间不足的时候,可能需要考虑字节的占用大小,用于估计使用机器的数量。

方案:

    很简单的:

1个字符=2个字节

        1个字节=8位

    1个英文字符占一个字节,也就是0.5个字符

    1个中文字符占2-4个字节,这个需要区分编码情况,具体如下:

        UTF8编码下: 1个中文字符占3个字节(少数占4个字节)

        GBK编码下:  1个中文字符占2个字节

        UTF16编码下:1个中文字符占2个字节,Unicode扩展区的一些汉字存储需要4个字节

上面其实不好记,最好的方法是放到程序里面去实际运行一下看看。

例子:

/** * * 描述:Java字符和字节测试例子 * 类名:BytesDemo.java * @author dutycode * @weibo ideaduty * @email [email protected] * @website http://www.dutycode.com * 2014-11-2 * @version 1.0.1 */ public class BytesDemo { public static void main(String[] args) { String e1 = "english"; String c1 = "中文"; byte[] eb1 = e1.getBytes(); byte[] eb1 = e1.getBytes(); byte[] cb1 = c1.getBytes(); byte[] ebUTF8 = e1.getBytes(Charset.forName("utf8")); byte[] cbUTF8 = c1.getBytes(Charset.forName("utf8")); byte[] ebGbk = e1.getBytes(Charset.forName("gbk")); byte[] cbGbk = c1.getBytes(Charset.forName("gbk")); byte[] cbGbk = c1.getBytes(Charset.forName("gbk")); System.out.println("中文字符,默认(UTF8):" + cb1.length); System.out.println("英文字符,(UTF8):" + ebUTF8.length); System.out.println("中文字符,(UTF8):" + cbUTF8.length); System.out.println("英文字符,(GBK):" + ebGbk.length); System.out.println("中文字符,(GBK):" + cbGbk.length); } }

运行结果:

    

    



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3