字符编码

字符编码

中途插入一下字符编码的知识~~

理解

1.计算机只能处理数字,文本必须先被转换成数字之后才能处理;
2.8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大整数就是255(二进制11111111 -> 十进制255)
3.如果要表示更大的整数,需要更多的字节

各国的编码表

  1. ASCII编码:因为计算机由美国人发明,所以最早的编码表只包含127个字符(大小写英文字母、数字和一些符号);
    (大写字母A的编码是65,小写字母z的编码是122)
  2. GB2312编码:由中国制定,用于处理中文;
  3. Shift_JIS编码:处理日文;
  4. Euc-kr编码:处理韩文

问题1

各国有各国的标注,在多语言混合的文本中,转换就会出现乱码

统一的编码表:

Unicode把所有的语言都统一到了一套编码里,解决了乱码的问题;
Unicode用2个字节表示一个字符,ASCII用1个字节表示一个字符;

问题2

在全英情况下,Unicode编码比ASCII编码要多一倍的存储空间

可变长的编码表:

UTF-8编码可以把一个Unicode字符按照不同的数字大小编码成16个字节;
常用的英文被编码成1个字节,汉子被编码成3个字节,很生僻的字符被编码成4
6个字节;

计算机系统的字符编码工作方式

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

  1. 用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件;
  2. 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器: