计算机只能处理数字,如果要处理文本,必须先把文本转化成数字。计算机最早是美国人发明的,所以只有127个字符被编码到计算机里面,即大小写英文字母、数字及一些符号,这个编码表被称为ASCLL表。其中“A”的编码是65,“a”的编码是97。大本事处理中文一个字节是不够的,至少需要两个字节,为了不与ASCLL码冲突,中国制定了GB2312编码,用来把中文编进去。
**注意:**一个字节能表示的最大整数是225(二进制1111111),两个字节能表示的最大整数是65535,四个字节能表示的最大整数是4294967295。如果要表示更大的数需要更多的字节。
世界上的语言有很多,在多语言混乱的文本中,显示出来会有乱码,Unicode把所有语言都统一到一套编码里,这样就不会有乱码问题了。(日本把日文编到Shift-JIS里面,韩国把韩文编到Euc-kr里)
**ASCLL码和Unicode的区别:**ASCLL编码是一个字节,Unicode编码通常是两个字节。字符0的ASCLL编码是48,注意字符‘0’和整数0是不同的。
如果写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算,所以把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码(每次8个位传输数据)把一个Unicode字符根据不同符号而变化字节长度,当字符在ASCLL码的范围时,就用一个字节表示,保留了ASCLL字符一个字节的编码作为它的一部分(常用的英文字母被编码成1个字节),汉字通常是3个字节(注意:Unicode一个中文字符占两个字节),只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。从Unicode到UTF-8并不是直接对应的,而是要通过一些算法和规则来转化的。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
Python字符编码
最新推荐文章于 2023-09-24 19:29:41 发布