21

作者: 可爱叽叽 | 来源:发表于2019-03-14 17:30 被阅读0次

    ——字符编码——

    #在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格式,可以直接进行打印:

    结果显示“你好”。

    相关文章

      网友评论

          本文标题:21

          本文链接:https://www.haomeiwen.com/subject/rhnduqtx.html