字节编码学习
文章目录
字节编码学习 01_字节与ASCII码表 02_每个国家都有独特的码表 03_国际化UTF-8 04_编码本和解码本不一致,乱码
01_字节与ASCII码表
public class Demo01 {
public static void main(String[] args) {
// 计算机的底层全部都是字节 ---- ----
// 一个字节由八个位构成的
// 每个位状态只有 0 1
// 一个字节的所有状态 2^8状态=256个状态
// 美国发明了计算机的字节,存储各种各样的信息,自己的文字
// 一个字节的一半就可以了
// 0--- ----
// 建立了一张数字与文字的映射表
// 0~127 97 a
char c1 = 97;
char c2 = 'a';
System.out.println(c1);
System.out.println(c2);
// ASCII是最最基础的一张码表 0-127
}
}
02_每个国家都有独特的码表
public class Demo02 {
public static void main(String[] args) {
// 计算机的底层全部都是字节 ---- ----
// 一个字节由八个位构成的
// 每个位状态只有 0 1
// 一个字节的所有状态 2^8状态=256个状态
// ASCII是最最基础的一张码表
// 其它国家,中国、日本、韩国...
// 码表本质都是一个数字对应一个文字
// 至少要两个字节 256*256=65536
// 中国 GB2312 0-127 兼容ASCII码表 97应该是a的意思 3322
// 日本 JP.... 0-127 兼容ASCII码表 97应该是a的意思 3322.
// 韩国 HG.... 0-127 兼容ASCII码表 97应该是a的意思 3322.
// 地球上所有的码表,都必须兼容ASCII码表,这就是英文不会乱码的原因
char c = 3322;
System.out.println(c);
// 乱码的原因,是解码和编码,没有采用同一张码表
}
}
03_国际化UTF-8
public class Demo03 {
public static void main(String[] args) {
// 计算机的底层全部都是字节 ---- ----
// 中国 GB2312 0-127 兼容ASCII码表 97应该是a的意思 3322?
// 日本 JP.... 0-127 兼容ASCII码表 97应该是a的意思 3322.
// 韩国 HG.... 0-127 兼容ASCII码表 97应该是a的意思 3322.
// 地球上码表不兼容,国际化组织,出了一张UTF-8编码表,保罗万象
// 1. 英文只有一个字节
// 2. 中文有三个字节
// 国际化组织要求每一款浏览器,必须支持UTF-8
}
}
04_编码本和解码本不一致,乱码