字符编码
中途插入一下字符编码的知识~~
理解
1.计算机只能处理数字,文本必须先被转换成数字之后才能处理;
2.8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大整数就是255(二进制11111111 -> 十进制255)
3.如果要表示更大的整数,需要更多的字节
各国的编码表
- ASCII编码:因为计算机由美国人发明,所以最早的编码表只包含127个字符(大小写英文字母、数字和一些符号);
(大写字母A的编码是65,小写字母z的编码是122) - GB2312编码:由中国制定,用于处理中文;
- Shift_JIS编码:处理日文;
- Euc-kr编码:处理韩文
问题1
各国有各国的标注,在多语言混合的文本中,转换就会出现乱码
统一的编码表:
Unicode把所有的语言都统一到了一套编码里,解决了乱码的问题;
Unicode用2个字节表示一个字符,ASCII用1个字节表示一个字符;
问题2
在全英情况下,Unicode编码比ASCII编码要多一倍的存储空间
可变长的编码表:
UTF-8编码可以把一个Unicode字符按照不同的数字大小编码成16个字节;6个字节;
常用的英文被编码成1个字节,汉子被编码成3个字节,很生僻的字符被编码成4
计算机系统的字符编码工作方式
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
- 用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件;
- 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器: