关于Python中gbk问题

img


为什么下面要encoding=gbk,上面那个不用,这个的作用是什么,还有什么时候gbk,什么时候utf8?

  UTF8是国际编码,它的通用性比较好,GBK是国家编码,通用性比UTF8差。 GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。 GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。
  这个网上有蛮多资料的,你可以去搜一下就有
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/695112
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:python解码报错,gbk和utf-8都不行了
  • 除此之外, 这篇博客: Python编码中的 gbk与utf-8转换 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 先在内存中转换成为我Unicode编码,然进行转换
    在这里插入图片描述
    1、将utf-8编码的中国转换为gbk编码的

    s='中国'
    b=s.encode('utf-8')#编码
    print(b,type(b))#得到utf-8编码的中国
    #b'\xe4\xb8\xad\xe5\x9b\xbd'
    g=b.decode('utf-8')#得到解码Unocode的中国
    print(g)#中国
    g=g.encode('gbk')#制定gbk编码
    print(g)#b'\xd6\xd0\xb9\xfa'
    

    2、gbk编码转换为utf-8编码

    s='中国'
    b=s.encode('gbk')#编码
    print(b)#b'\xd6\xd0\xb9\xfa'
    g=b.decode('gbk')
    print(g)#中国
    g=g.encode('utf-8')
    print(g)#b'\xe4\xb8\xad\xe5\x9b\xbd'