0
点赞
收藏
分享

微信扫一扫

一文让你秒懂字符编码

半秋L 2022-02-06 阅读 101
pythonjava

字符编码

文字是如何显示的

	128	64	32	16	8	4	2	1
 65	0	1	0	0	0	0	0	1
108 0	1	1	0	1	1	0	1
148	0	0	1	1	0	0	0	0
    
二进制 ——》十进制 9	
A 1101101	
l 1101101	
e	
x 
11011011101101	
设定为,每82进制位代表一个字符	
论断句的重要性	

8bit = 1bytes 字节  ,代表 1个字符	
1024字节 = 1Kb 1024个字符	
1024Kb = 1Mb	
1024MB = 1GB 一部电影	
1024GB = 1TB

中文是如何显示的

1980  gb2312  6763  2个字节 代表 一个字符
1995  GBK1.0  20000多个字符 ,
2000  GBK     280000

我的名字叫Alex , 2
010101010101010101010
如果2个高位字节 同时出现 , 就认定这是个中文字符 , 就去gbk编码表里找对应的值 ,
否则就使用ascii 来进行编码
2mb ascii
4mb	gbk

编码的战国时代

中国人使用自己gbk的同时, 日本 人shift_JIS , KS.xxx, TH...
日本游戏 ————》中国 电脑 上没日本 编码集————》导致乱码
要想不乱——》装 语言包 shift_JIS ————》 能在中国电脑 上正常显示日文
很麻烦 ,文化交流障碍
联合国  万国码	
	1. 支持全球所有的语言, Unicode 2-4字节 已经收录136690个字符,并还在一直不断扩张中..	
    2. 还可以与全球各个语言进行转换, unicode => gbk, =>shift_JIS , =>Big5		
    为什么要跟各个语言互相转?		
    1990.	
    
    19801. 很多软件 基于gb2312 开发, 转向unicode等于推倒重来		
        2. unicode=像英语 , gbk=汉语, 没有强烈的需求要全转成unicode .		
        
    全球计算机厂商出厂都支持unicode 。		
    
    大多数软件的程序,都支持unicode .

utf-8

unicode 带来了新问题 , 在内存里,空间大,没问题, 传输或者存到硬盘,空间大了一倍, 浪费 +效率 低。


针对unicode的传输+存储 , 做了一个新编码 , utf(Unicode Transformation Format)-8
UTF-8: 使用1234个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
UTF-16: 使用24个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
UTF-32: 使用4个字节表示所有字符;

文字 在内存里 是unicode --> 传输--》转成utf-8

在这里插入图片描述

举报

相关推荐

0 条评论