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]


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

目录
相关文章
|
23天前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
53 4
|
19天前
|
Java
Java实现随机生成某个省某个市的身份证号?如何编码?
【10月更文挑战第18天】Java实现随机生成某个省某个市的身份证号?如何编码?
68 5
|
23天前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
49 2
|
3月前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
106 0
|
30天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
65 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
1月前
|
存储 Java 数据安全/隐私保护
Java中的域,什么是域?计算机语言中的域是什么?(有代码实例)
文章解释了Java中域的概念,包括实例域、静态域、常量域和局部域,以及它们的特点和使用场景。
48 2
|
2月前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
20 2
|
3月前
|
Java
Java系列之:字符串UTF-8 编码格式转换位 UTF-32 【生僻字截取问题】
这篇文章讨论了在Java中处理包含生僻字的字符串时可能遇到的问题,并提供了一种解决方法:将字符串的编码格式从UTF-8转换为UTF-32,以确保每个字符都占用固定的字节数,从而避免在截取操作中破坏字符,示例代码展示了如何进行编码转换和字符串截取。
|
3月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
95 4
|
3月前
|
Java
Java——编码GBK的不可映射字符
Java——编码GBK的不可映射字符
43 1
下一篇
无影云桌面