# Python2.7 默认的编码是什么? # 打印系统默认编码 import sys print(sys.getdefaultencoding()) ---> ascii # 虽然程序是用 utf8 但默认编码是 ascii # 如果没有 encode,会自动按系统编码 ascii 自动解码 1-1 s = "你好" s_to_gbk = s.encode("gbk") print(s_to_gbk) print("你好") ---> b'xc4xe3xbaxc3' 你好 2-1 怎么解码呢? s = "你好" s_to_gbk = s.decode().encode("gbk") print(s_to_gbk) print("你好") ---> Error decode 如果不往里面传值,相当于用默认的编码;与没写是一样的 所以必须要显示的写进去 2-2 s = "你好" s_to_unicode = s.decode("utf-8") print(s_to_unicode) s_to_gbk = s_to_unicode.encode("gbk") print(s_to_gbk) 3-1 gbk_to_utf8 = s_to_gbk.decode("gbk").encode("utf-8") print(gbk_to_utf8) # gbk 转成 unicode 要告诉 unicode 之前是什么编码, # 然后 unicode 在去找和这个编码对应的并转成 unicode # 然后在编码成 utf8 4-1 >>> s = "你好" >>> s = u"你好" >>> print(s) 你好 >>> # u 表示 unicode # utf-8 是属于 unicode 的扩展集,unicode 是可以直接在 utf-8 中打印出来的 # 但是 gbk 不行,gbk 和 unicode 必须转换 # utf8 和 unicode 可以直接打印 4-2 如果 s 已经是 unicode了,所有的 decode 动作都是要解成 Unicode 如果已经是 unicode 了,解的时候就会报错 # 现在看看 Python 3 # 在 python3 中 不需要加 编码集 5-1 s = "你哈" # 现在想要转成 gbk,默认就是 unicode,所以不需要解码,直接 encode print(s.encode("gbk")) ---> b'xc4xe3xb9xfe' # 现在右下角是默认编码 utf-8 5-2 # 如果把默认编码格式改为 gbk 呢? s = "你哈" # 注:默认 utf-8 编码 print(s.encode("gbk")) ---> SyntaxError: Non-UTF-8 code starting with 'xc4' in file # python3 默认是 unicode 所以无法处理 gbk,因为现在的这个文件是 gbk 编码的 # 所以是无法处理的,那应该怎么办呢? # 需要声明,在文件头声明成 gbk # -*- coding:gbk -*- s = "你哈" # 现在想要转成 gbk,默认就是 unicode,所以不需要解码,直接 encode print(s) print(s.encode("gbk")) ---> 你哈 b'xc4xe3xb9xfe' # b表示 bytes;在python3 中,encode之后,除了修改编码集,会全部变成 bytes 类型,这是和 python2 最大的区别 6-1 s = "你哈" s_gbk = s.encode("gbk") print(s_gbk) print(s.encode()) ---> b'xc4xe3xb9xfe' # gbk b'xe4xbdxa0xe5x93x88' # utf-8 6-2 s = "你哈" s_gbk = s.encode("gbk") print(s_gbk) print(s.encode()) gbk_to_utf8 = s_gbk.decode("gbk").encode("utf-8") print("utf8",gbk_to_utf8) # 先转成 unicode 在转成 utf8 ---> b'xc4xe3xb9xfe' b'xe4xbdxa0xe5x93x88' utf8 b'xe4xbdxa0xe5x93x88' # 所有的字符集转换都要经过一个 unicode到此这篇字符集转码(字符转换编码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/39970.html