不同字符编码类型的总结

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/52820128 1.ASCII计算机一开始在美国使用,字符编码也只包括英文字母。
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/52820128

1.ASCII

计算机一开始在美国使用,字符编码也只包括英文字母。ANSCII编码由一个字节表示所有符号。一个字节可以表示的所有可能是256(2的8次方)种,对于美国人来说,26个英文字母,加上常用的符号,也只是用了127个。如果大家都用英文,那这套编码完全够用。但是不同国家的文字不同,如果加上其他国家的语言符号,那一个字节是不够的,之后ASCII做出了改进,将256种情况剩余的可能用来表示其他字符。一直排到了第255种可能,从128到255表示的字符成为“扩展字符集”,然而,新增的字符并不能解决所有问题。

2.GB2312

计算机开始在我国普及时,ASCII中已经没有可以利用的字节状态来表示汉字。于是,我们将扩展字符集删除,将127后的字符状态重新编码。小于127的字符状态的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节称之为高字节,后面一个字节称之为低字节,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符,而原来在127号以下的那些就叫”半角”字符了。

后来GB2312也无法满足人们的需要,随后出现了GBK标准,再后来,还是不够用,于是出现了GB18030。这个标准几乎可以表示所有的中文字符,此标准在2006年5月1日被作为在中国境内所有软件产品支持的强制规格。

3.Unicode

不只是我国,很多国家都制定了相应的符合本国文化的字符编码标准。这些标准再本国内可以正常使用,但是如果是不同国家之间通过文本文件的交流,就很有可能导致乱码。这时,国际标准化组织(osi)出现了,OSI致力于将全世界所有的字符用统一的标准编码,消除不同国家之间交流的障碍。

OSI将所有字符用两个字节表示,包括ANCSI中的前127个字符,所以对于钱127个字符来说,本来8位就可以表示的字符现在用16位来表示,这其实是一种资源的浪费。

4.UTF-8

可以看出,Unicode虽然是一个很好的字符编码方式,但由于所有字符都用两个字节表示导致的资源的浪费,促使了UTF-8的出现,UTF-8编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。
UTF-8有如下特点:

<1> 前128个US-ASCII字符只需一个字节编码(与ANCSI相同)。

<2> 带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码。

<3> 其他基本多文种平面(BMP)中的字符(这包含了大部分常用字)使用三个字节编码。

<4> 其他极少使用的Unicode辅助平面的字符使用四字节编码。

参考文献:
百度文库
字符集和字符编码/吴秦

相关文章
|
3月前
|
存储 自然语言处理 API
超级好用的C++实用库之字符编码转换
超级好用的C++实用库之字符编码转换
65 2
|
3月前
|
自然语言处理
字符编码
字符编码。
59 15
|
4月前
|
自然语言处理
字符编码问题之UTF-16不直接采用4字节定长编码来支持所有字符如何解决
字符编码问题之UTF-16不直接采用4字节定长编码来支持所有字符如何解决
52 0
|
Web App开发 存储 Windows
字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的?
转自:  http://apps.hi.baidu.com/share/detail/17798660 字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得字符编码的知识。不注意的人可能对这个不在意,但这些名词有时候实在让人迷惑,对想学习计算机知识的人来说,搞懂它也十分重要,我也是在学习中慢慢了解了一些这方面的知识。
1919 0
|
存储 编解码 Windows
理解字符编码
理解字符编码
理解字符编码
错误: 编码GBK的不可映射字符
错误: 编码GBK的不可映射字符
153 0
|
JavaScript 自然语言处理
|
JavaScript 前端开发 .NET