字符编码的学习:ASCII,UTF-8,Unicode

作为一个好吃懒做的计算机小白,我一直向往那些在大学时期就有很高本领的大神们,我一直想学习他们刻苦钻研的精神。无奈,本人实在太懒了,学习一直是断断续续。唉,悲哀啊。

今天在看视频教程的时候,由老师推荐了阮一峰的网络日志,看了一些关于字符编码的相关知识。看完了之后,想着趁热打铁,写一篇博客出来,记录一下自己的学习历程。

ps:没有复制,纯手打的哦!!!嘻嘻。

一:ASCII

    由一个字节表示的,高位始终为0的,由美国在上世纪60年代提出的,可表示一共128个字符的编码方式,就是ASCII码。

    呼呼,是不是有点太简单了。

字符编码的学习:ASCII,UTF-8,Unicode_第1张图片

二:Unicode

    是由全世界的计算机硬件厂商联合提供的,可表示几乎全世界所有语言和字符的一个编码字符集。

    因为ASCII码只能表示128位,而在其他国家一开始的运用中,低的128位不变,高的128位就会在不同的国家之间产生错误。尤其是互联网的出现,更加促进了Unicode编码的诞生。

三:UTF-8

    UTF-8是Unicode的实现方式的一种,其他的还有UTF-16,UTF-32,等等,但是不常用,就不说了。

    实现规则只有两条:

    一:单字节的字符用一个字节表示,第一位始终为0,其他七位为它的Unicode码。因此,对于英文字母(我也没看懂这一部分哈),单字节的Unicode码与ASCII码是相同的。

    二:多字节的字符,n字节,则第一个字节的前n位为1,第n+1位为0,剩下的为可用编码,剩下字节的开头为10,剩下的为可用编码。

Unicode符号范围     |        UTF-8编码方式
(十六进制)        |              (二进制)
----------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    上图为Unicode与UTF-8的对应关系。

ps:呜呜呜,简直是太兴奋了,终于没有半途而废。

加油!!!Fighting!!!


你可能感兴趣的:(编码)