——字符编码——
#在python2.x上执行
执行如下一段代码,把s转为gbk格式:
报错:
原因是:如果直接进行编码,它会用默认的字符编码级进行解码,然后再进行编码。python2.x默认的字符编码级为ASCII。所以解码s是ASCII码的形式,ASCII码又不支持中文,所以报错了。
我们可以打印一下默认的string编码格式,调用sys.getdefaultencoding():
可以看到是ASCII码:
所以我们必须要先进行解码,把s解码成Unicode,然后再进行编码。我们先进行解码看一下:
结果如下,Unicode支持中文所以可以显示。
我们可以打印一下s_to_unicode的类型:
接下来,我们把utf-8的数据转换成gbk的形式:
是不能打印出来的:
原因是:terminal 不支持gbk格式。
我们要更改会话的字符编码级。
字符编码级为utf-8形式时,可以显示utf-8,可以显示Unicode,不可以显示gbk。
字符编码级为gbk时,可以显示gbk,不可以显示utf-8,也不可以显示Unicode。
以上是utf-8转换为gbk。
那gbk转换为utf-8呢?
结果打印显示“你好”。
我们在你好前面加个u,以前的你好是utf-8格式,在前面加个u,现在的s就是Unicode格式,可以直接进行打印:
结果显示“你好”。
网友评论