字符编码UTF-8
ascii码:用一个字节的低7位来表示英文的128个字符,高1位统一为0。后来随着越来越多的文字被编入ascii吗,高七位也被编进去了。
GB2312:汉字的出现,ascii码无法满足了,所以就出现了GB2312。
UNICODE:为了各国都能认识且使用统一的编码,就发明了这个编码,又名万国码。
--------------------------------------------
因为UNICODE之规定了文字和二进制的映射,但是没有规定在实际中怎么存储,因为不同的字需要占用的二进制位数不是固定的,太长了浪费,太短了有些长的不满足,还有一些操作系统的原因等等。
UTF-8:随着各国互联,世界村的出现,各国人凑在一起看小电影,一个画面可能会显示多种语言,所以需要一种统一的,高效的,合适的编码来编解码,UNICODE作为一个蓝本,明显不能满足这三个要求,所以UTF-8出现了:
另外还有utf-16、utf-32等。UTF-8不是固定字长编码的,而是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。这是种比较巧妙的设计,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。注意unicode的字符编码和utf-8的存储编码表示是不同的,例如"严"字的Unicode码是4E25,UTF-8编码是E4B8A5,这个7里面解释了的,UTF-8编码不仅考虑了编码,还考虑了存储,E4B8A5是在存储识别编码的基础上塞进了4E25。一般的中文汉字在utf-8中是3个字节,最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。
参考文章:https://blog.csdn.net/weixin_30402343/article/details/95836628