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

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

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]


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

目录
相关文章
|
6月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
180 4
|
1月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
92 17
|
6月前
|
Java
Java实现随机生成某个省某个市的身份证号?如何编码?
【10月更文挑战第18天】Java实现随机生成某个省某个市的身份证号?如何编码?
403 5
|
6月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
130 2
|
3月前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
135 60
|
8月前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
218 0
|
6月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
177 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
6月前
|
存储 Java 数据安全/隐私保护
Java中的域,什么是域?计算机语言中的域是什么?(有代码实例)
文章解释了Java中域的概念,包括实例域、静态域、常量域和局部域,以及它们的特点和使用场景。
179 2
|
7月前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
56 2
|
8月前
|
Java
Java系列之:字符串UTF-8 编码格式转换位 UTF-32 【生僻字截取问题】
这篇文章讨论了在Java中处理包含生僻字的字符串时可能遇到的问题,并提供了一种解决方法:将字符串的编码格式从UTF-8转换为UTF-32,以确保每个字符都占用固定的字节数,从而避免在截取操作中破坏字符,示例代码展示了如何进行编码转换和字符串截取。