python基础——str类型和bytes类型

Python2.X和Python3.X在编码方面的区别

Py3.X源码文件默认使用utf-8编码,这使得以下代码变得合法化。
1 >>> 博客 = "python"
2 >>> print(博客)
3 python

python2中使用for循环print汉字,输出为字节,python3中使用for循环print结果为字符

 1  #python2
 2 >>> sf = "博客"
 3 >>> print(sf)
 4 博客
 5 >>> num = 0
 6 >>> for i in sf:
 7 ...     print(num,i)
 8 ...     num += 1
 9 ...
10 (0, '\xb2')
11 (1, '\xa9')
12 (2, '\xbf')
13 (3, '\xcd')
1 #python3
2 >>> sf = "博客"
3 >>> for i in sf:
4 ...     print(i)
5 ...
6 7

 

在utf-8编码中一个汉字由三个字节组成,在gbk编码中一个汉字由两个字节组成

1 >>> fs = "博客园"
2 >>> n1 = bytes(fs,encoding = 'utf-8')
3 >>> n2 = bytes(fs,encoding = 'gbk')
4 >>> print(n1)
5 b'\xe5\x8d\x9a\xe5\xae\xa2\xe5\x9b\xad'
6 >>> print(n2)
7 b'\xb2\xa9\xbf\xcd\xd4\xb0'

 

posted @ 2017-09-03 20:36  seve_Y  阅读(338)  评论(0编辑  收藏  举报