python3字符串以及部分字符集
来源:互联网 发布:计算量子电路矩阵 编辑:程序博客网 时间:2024/06/05 21:17
我们通过requests.content的方式获取到html内容是bytes类型的,需要使用decode()方法将bytes类型转成str类型。那么问题来了,什么是bytes类型,什么是str类型?
bytes类型:二进制
互联网上的数据都是以二进制的方式进行传输的str类型:Unicode的呈现形式
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等
字符集(Character)是多个字符的集合
字符集包括:ASCII字符集、GB2312字符集、Unicode字符集等
ASCII编码是1个字节,而Unicode编码通常是2个字节
UTF-8是Unicode的实现方式之一。UTF-8是一种变成的编码方式,可以是1,2,3个字节
谈谈自己的理解。
首先是ASCII码,全称叫做美国信息交换标准代码。在计算机中,所有的数据在存储和运算时都要使用二进制表示。ASCII码就规定了哪些二进制数表示哪些字符,比如说二进制01000001,也就是十进制的65就代表大写的‘A’。起初,计算机只有在美国等少数国家存在,这些国家基本使用英语。使用单字节编码,一个字节是由8位0和1组成,所以单字节能表示2的8方,也是256个字符,对于这些国家,单字节编码就足够了。
后来,计算机发展到其他国家。ASCII码只能表示256个字符,中国汉字有7000多个,常用汉字也有3000多个,所以说中国,需要有自己的编码方式,出现了GB2312等一些编码方式。当然还有一些其他国家,比如说俄罗斯使用俄语,日本使用日语,他们也有自己国家的编码方式。但是,这种情况下,各个国家之间进行信息交流,使用起来很不方便。
美国使用ASCII码,中国使用GB2312字符集等等。这个时候,国际组织说,我们统一一下,使用两个字节,制定一套Unicode码,能表示65536个字符,可以容纳世界上所有文字和符号的字符编码方案。这样,问题就不就解决了?于是诞生了Unicode,但是Unicode并没有流行起来。因为有些国家,比如说美国,使用单字节,就可以表示所有的英语用到的数字,字母,特殊符号等。(我使用一个字节就足够了,为啥要使用两个字节)。这个时候出现了UTF-8,UTF-8是Unicode的实现方式之一。我所理解的UTF-8,叫做可变长字节编码,比如说,美国使用单字节,中国使用两个字节等。
上面是我对ASCII,GB2312,Unicode,UTF8字符集出现的一点简单理解。现在我们经常使用UTF-8字符集。
最后,在python3中,bytes和str如何转化呢?
使用decode()方法将bytes转为str
使用encode()方法将str转为bytes
附一下廖雪峰的官方网站-关于字符串和字符编码的讲解,很清楚。(自己上面写的,一直忘了从哪看的,原来是从廖老师网站上看的,哈哈哈)
字符串和编码
- python3字符串以及部分字符集
- python3 字符集编码以及python3 乱码问题
- python3 字符串
- Python3字符串
- Python3 字符串
- python3字符串
- Python3 字符串
- python2 python3 部分区别
- php判断字符串的编码以及将字符串从GBK转换为UTF8字符集
- java处理字符集-第二部分-文件字符集
- Unicode以及字符集转换
- 剖析字符集以及编码
- 字符集以及编码格式
- 字符集以及UTF-8
- 不同字符集下字符串类型的比对以及存汉字的比较
- 字符串与字符集
- 转换字符串的字符集
- 部分A+B (15)python3
- Codeforces 239D Boring Partition【思维】
- UVA7512 November 11th (思路)
- maven配置资源拷贝
- 链表的基本操作[C语言]
- 银行定期存款功能
- python3字符串以及部分字符集
- Android开发滑动到顶部悬停效果
- js去重
- ijkplayer-android 移植与调试日志
- Video.js调整视频封面大小的问题
- [python数值分析]最小二乘法
- C++文件操作
- 【字母大小写转换】体现ASCII的便利性
- hdu4374 One hundred layer