300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASCII GBK Unicode(UTF-32/UTF-8) 乱码 ANSI详解

ASCII GBK Unicode(UTF-32/UTF-8) 乱码 ANSI详解

时间:2022-09-19 01:47:34

相关推荐

ASCII GBK Unicode(UTF-32/UTF-8) 乱码 ANSI详解

前言

总目录

日常开发过程中,经常会遇到ASCII,GBK,Unicode(UTF-32/UTF-8)等名词,对于这些概念是不是有点傻傻分不清呢?相信看下本文,你会有自己的理解。

一、ASCII码

1、缘由

美国人需要将自己的语言存储进计算机,但是计算机是二进制的,因此他们就想办法先将自己英文字母和符号从0-127分别进行了编号,然后将这个0-127的编号又转化为2进制,因此就产生了ASCII码。计算机就能够"认识"他们的语言了

2、ASCII全称

美国信息交换标准代码,包含了英文和符号

标准ASCII使用一个字节存储一个符号,首位是0,总共可表示128位字符(对于美国够用)

ASCII表

关于字节详解

3、意义

有了ASCII相当于有了一本字典,能够将人类的指令翻译给计算机,然后计算机按指令执行相关操作。

例如:当计算机读取到 0100 0001,就知道这个代表的是A

二、GBK(汉字内码扩展规范,国标)

1、缘由

随着计算机的发展,咱中国人也开始用计算机了,但是咱中文博大精深,ASCII码完全不够用啊,于是就有了GBK(汉字编码字符集),包含了2万多个汉字与字符,GBK中一个中文字符编码用两个字节的形式存储

注意:GBK 兼容了ASCII字符集

2.问题

那么有人就要说了,如果我一句话中有中文,有英文,电脑怎么区分呢?到底按照什么标准解析呢?

这个时候就有了GBK另一项规定:汉字的第一个字节的第一位必须是1

通过以上规定就解决了区分中英文的问题。

三、Unicode字符集(统一码,也叫万国码)

1、缘由

随着计算机的发展,世界上不同的国家都开始使用计算机,但是每个区域的国家都有自己的语言,如果每个国家都发明一个字符串将会有很多的字符集,为了统一标准,由国际组织制定了,一个字符集,就是Unicode字符集。Unicode字符集,可以容纳世界上所有的文字,符号的字符集

2、UTF-32和UTF-8

Unicode 字符集第一个版本:UTF-32,4个字节表示一个字符,兼容性很好,但是占存储空间,通信效率变低,不被国际社会接受。因为原先存储一个字节就可以,解码的时候也只需解码一个字节,效率更高

由此,发明了UTF-8,这是Unicode字符集的另一种编码方案,采取可变长度的编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节(按需分配)

其中 英文字符,数字等只占1个字节(兼容ASCII),汉字占用3个字节

四、乱码

encoder和decoder的区别 计算机中所有的数据都是以二进制形式存储的,但我们直接看二进制是看不懂的,所以要借助decoder和encoder来完成字符与二进制数据之间的转换。

encoder:编码,将我们能看懂的字符转换为二进制(让计算机看懂)

decoder:解码,将二进制转化为我们能看懂的字符串

那么上面所讲的ASCII,GBK,Unicode UTF-8码表就是编码和解码的参考物

如果编号时采用的编码和解码时不一致的时候就会产生乱码

五、ANSI

ANSI 不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI编码代表 GB2312编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表JIS 编码。

总结

以上就是今天要介绍的内容,另外为了避免乱码等情况出现,技术人员在开发的时候都应该使用UTF-8进行编号

附:

总目录

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。