4.关于python字符串编码问题

1.计算机只能处理数字,文本转换为数字才能处理。计算机中8个bit作为一个字节,所以一个字节能表示最大的数字就是255。

2.计算机是美国人发明的,所以一个字节可以表示所有字符了,ASCII(一个字节)编码就成为了美国人的标准编码。

3.但ASCII处理中文明显是不够的,中文不止255个汉字,所以中国定制了GB2312编码,用两个字节表示一个汉字。GB2312还把ASCII包含进去了,同理,日文、韩文等上百个国家为了解决这个问题都发展了一套自己的编码,标准越来越多,如果出现多种语言混合显示就一定会出现乱码。

4.于是Unicode就出现了,Unicode将所有编码统一到一套编码里。(两个字节)

5.乱码问题解决了,但如果内容全是英文,Unicode编码比ASCII编码需要多一倍的存储空间,同时如果传输需要多一倍左右的的传输时间。

6.然后“utf-8"出现了,它是一套可变长的编码,把英文变成一个字节,汉字3个字节,特别生僻的变成4-6字节,如果传输大量的英文,utf-8作用就很明显了。

7.decode的作用是把其他编码转换成Unicode编码,encode的作用是把Unicode编码转换成自己想要它成为的编码。Windows下默认编码格式是GB2312,s.decode("gb2312").encode("utf-8)的意思是:将字符串s由GB2312转换为Unicode,然后再转换成utf-8编码。linux下默认编码格式是utf-8,这里说的默认编码是在该系统下,输入的字符串是该编码。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容