常见编码占用字节数

编码字节数对比
本文通过Java代码实测了多种编码方式下英文和中文字符的字节数,包括ASCII、Unicode、UTF-8、UTF-16、GB2312、BIG5、GBK、GB18030和ISO-8859-1,揭示了不同编码对字符存储空间的影响。

常见编码对中英文字符的支持及占用字节数 


使用 Java 验证

import java.io.UnsupportedEncodingException;

import org.junit.Test;

public class EncodeTest {

    @Test
    public void test() throws UnsupportedEncodingException {
        String characterEn = "A";
        String characterZhSimple = "简";
        String characterZhComplex = "簡";

        System.out.println("ASCII编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("ASCII").length);
        System.out.println();

        System.out.println("Unicode编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("Unicode").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("Unicode").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("Unicode").length);
        System.out.println();

        System.out.println("UTF-8编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("UTF-8").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("UTF-8").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("UTF-8").length);
        System.out.println();

        System.out.println("UTF-16编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("UTF-16").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("UTF-16").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("UTF-16").length);
        System.out.println();

        System.out.println("GB2312编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("GB2312").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("GB2312").length);
        System.out.println();

        System.out.println("BIG5编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("BIG5").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("BIG5").length);
        System.out.println();

        System.out.println("GBK编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("GBK").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("GBK").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("GBK").length);
        System.out.println();

        System.out.println("GB18030编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("GB18030").length);
        System.out.println("中文简体:" + characterZhSimple.getBytes("GB18030").length);
        System.out.println("中文繁体:" + characterZhComplex.getBytes("GB18030").length);
        System.out.println();

        System.out.println("ISO-8859-1编码字节数:");
        System.out.println("英文字符:" + characterEn.getBytes("ISO-8859-1").length);
        System.out.println();
    }

}

 


验证结果:

ASCII编码字节数:
英文字符:1

Unicode编码字节数:
英文字符:4
中文简体:4
中文繁体:4

UTF-8编码字节数:
英文字符:1
中文简体:3
中文繁体:3

UTF-16编码字节数:
英文字符:4
中文简体:4
中文繁体:4

GB2312编码字节数:
英文字符:1
中文简体:2

BIG5编码字节数:
英文字符:1
中文繁体:2

GBK编码字节数:
英文字符:1
中文简体:2
中文繁体:2

GB18030编码字节数:
英文字符:1
中文简体:2
中文繁体:2

ISO-8859-1编码字节数:
英文字符:1


原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值