1.为什么需要编码
计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。一个字节能表示的最大的整数就是255,如果要表示更大的整数,就必须用更多的字节。
2.常见几种编码
● ASCII编码:
计算机是美国发明的,最开始只有127个字符(常用英文和符号),用一个字节就可以全部表示。
● GB2312:
汉子远不止127个,所以至少用两个字节表示。所以中国标准制定了GB2312,里面包含了常用的汉字。GBK基于GB2312,包含更多生僻字,支持简繁双体;GB18030基于GBK,包含更多生僻字,支持少数民族文字。
● Unicode
但是有些文章是多个国家混合语言的,全世界的语言两个字节无法全部表示。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
● uft-8
加入一篇文章主要是英文,只是混合了少量其他国家语言。这时候存储一个英文字符,本来只需要1个字节,用Unicode需要多个字节。所以出现了“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
其他国家的用户无需安装中文支持就可以直接浏览utf-8的中文网站。
在计算机内存中,统一用Unicode中编码,比如记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存或传输时再把Unicode转换为UTF-8。
3.全角和半角
全角占两个字节,半角占一个字节,半角全角主要是针对标点符号来说的。不管全角半角汉字都占用两个字节。搜狗里用shift+space切换全角和半角。
汉语等文字语言的字库量远大于256个,所以改用两个字节来储存。如果统一使用全角字符的话,排列起来也显得整齐,英文和其它拉丁文的字符和标点也提供了全角格式。如果全英文或系统命令就用半角即可。