计算机是由美国人发明的,所以计算机中能识别的只有英语,也即一些字母和对应的符号。计算机对这些符号的识别编码就是ASCII码
计算机不断发展,各个国家都想要计算机能显示存储自己的语言,所以各国又为本国语言出了一套编码,如中国的GB2312
计算机发展为全球性技术,但是每个国家都有自己的一套编码,所以一个二进制数通过不同的编码就可以被解析成不同的符号,那么打开一个文件,就首先需要知道文件是用什么编码的,不然就会导致文件乱码。为了解决乱码问题,全球发展出用统一的一套编码来表示各国的语言,这就是Unicode编码。因为包含了多国语言,所以unicode是一个很多的字符集编码。
unicode虽然定义了统一的编码,但是存储在计算机的方式/计算机识别的方式却仍然是个问题,例如,英语字母
C
是2B——43,而中文一
字是4E00——19968,前者8个bit即可表示,后者需要16bit,如果计算机以8bit识别为一个字符,那么中文一
就会乱码;若以16bit为一个字符,两者都可以显示,但是大写字母C
会有8bit为空闲;若需要64bit甚至更多,那么对于小号字符存储会造成很大的浪费解决方法就是UTF-8,这是unicode的一种实现方式,是一种变长编码,在每个字节中用前几位bit,来事先说明本字符是要应用几字节存储的。
【UTF-8中英文字母的编码和ASCII一样】
参考:字符编码笔记:ASCII,Unicode 和 UTF-8
最后更新: 2021年07月21日 23:36
原始链接: https://idkhts.github.io/2021/07/20/%E7%BC%96%E7%A0%81%EF%BC%9AASCLL%EF%BC%8CUnicode%EF%BC%8CUTF-8/