java字符集(编码与解码)--计算机翻译官

前言必读

读者手册(必读)_云边的快乐猫的博客-CSDN博客

1.什么是字符集?

答:计算机底层是不能直接存储字符的,只能通过一串的0和1去储存,这些0和1组合起来的就是字符集。

2.ASCII字符集(美国信息交换标准代码)。

答:包含了数字、英文、符号。1个字节储存1个字符。总共可以表示128个字符。

3.GBK(中国的码表)

答:Windows默认的码表,兼容了ASCII字符集。包含了几万个汉字。也支持繁体汉字和部分日韩文字。1个中文以2个字节的形式存储。英文和数字在哪里都占1个字节。

4.Unicode码表(万国码、统一码)

答:全世界通用。计算机科学领域的一项业界字符码标准。容纳世界上常见的文字和符号。常用的就是UTF-8(技术人员都应该使用这个)。兼容了ASCII字符集。1个中文以3个字节的形式存储。英文和数字在哪里都占1个字节。

5.字节和字符的区别?

字节:表示一种计量单位,表示在计算机存储中占用多少。

字符:举个例子:我,1,q,¥%……这些都属于字符。

6.注意点

1.编码前和编码后的码表要一致,要不然会出现乱码。

例子:

idea默认的UTF-8转成字节和GBK测试。

package bao;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class Test {
    public static void main(String[] args) throws UnsupportedEncodingException {
        //默认为UTF-8
        String name ="大弦嘈嘈如急雨,小弦切切如私语,1";
        
        //转化为字节例子
        byte[] bytes = name.getBytes();
        System.out.println(bytes.length);//输出字节长度(中文1个字符占3个字节,那就是16*3+1=49)
        System.out.println(Arrays.toString(bytes));//具体展现每个字节位置

        //默认UTF-8转成GBK例子
        //1.转码:指定转成GBK
        byte[] g = name.getBytes("GBK");//会出现异常,抛出就好
        //2.解码:指定转回GBK
        String s = new String(g,"GBK");
        System.out.println(s);
    }
}

运行结果:

49
[-27, -92, -89, -27, -68, -90, -27, -104, -120, -27, -104, -120, -27, -90, -126, -26, -128, -91, -23, -101, -88, -17, -68, -116, -27, -80, -113, -27, -68, -90, -27, -120, -121, -27, -120, -121, -27, -90, -126, -25, -89, -127, -24, -81, -83, -17, -68, -116, 49]
大弦嘈嘈如急雨,小弦切切如私语,1 

旁白:这些码表就是把我们要输入的文字字符等翻译成计算机能懂的二进制去执行。就是一个翻译官。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云边的快乐猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值