zoukankan      html  css  js  c++  java
  • python3字符集之间--encode与decode之间的转码详解

    encode是编码,里面传入的参数是需要转成的字符集,
    decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码

    字符集之间的爱恨纠缠

     1 # -*- coding: utf-8 -*-
     2 '''
     3     Python3 默认编码为unicode
     4 '''
     5 #输出默认编码
     6 import sys
     7 print(sys.getdefaultencoding())
     8 
     9 #文件编码为utf-8
    10 s = '你好'
    11 #把s转换为gbk编码
    12 s_to_gbk = s.encode("gbk")
    13 print(s_to_gbk)
    14 #输出结果为bytes类型--b'xc4xe3xbaxc3'
    15 
    16 #再把此时的gbk转换成utf-8
    17 s_to_utf8 = s_to_gbk.decode("gbk").encode("utf-8")
    18 print(s_to_utf8)
    19 #输出结果为bytes类型--b'xe4xbdxa0xe5xa5xbd'
    20 
    21 #再把此时的utf-8转换成gb2312
    22 s_to_gb2312 = s_to_utf8.decode("utf-8").encode("gb2312")
    23 print(s_to_gb2312)
    24 #输出结果为byts类型--b'xc4xe3xbaxc3',因为gb2312字符集归属于gbk字符集,所以转换结果bytes相同
    25 
    26 #把gbk转换为gb2312
    27 s_to_gbk_gb2312 = s_to_gbk.decode("gbk").encode("gb2312")
    28 print(s_to_gbk_gb2312)
    29 #输出结果为byts类型--b'xc4xe3xbaxc3'
    30 
    31 
    32 '''
    33     encode是编码,里面传入的参数是需要转成的字符集,
    34     decode是解码,里面传入的参数是本身的字符集,用本身的字符集解码为unicode字符集再转码
    35     总结:python3基于unicode编码,若文件头声明为utf-8只是以utf-8字符集显示,基本的还是unicode
    36          当使用unicode转换为utf-8时直接encode("utf-8")就可以了,
    37          同理若使用unicode转换为gbk时直接encode("gbk")就可以了,
    38          若使用utf-8转换成gbk则需要先解码decode("utf-8").encode("gbk")再编码为gbk
    39          若使用utf-8转换成gb2312则需要先解码decode("utf-8").encode("gb2312")再编码为gb2312
    40          若使用gbk转换成utf-8则需要先解码decode("gbk").encode("utf-8")再编码为utf-8
    41          若使用gbk转换成gb2312则需要先解码decode("gbk").encode("gb2312")再编码为gb2312
    42          gb2312同理...
    43 '''
  • 相关阅读:
    MSCRM 2011 修改显示记录数
    医疗相关名词解析
    把图片中的文字转成文本
    自我介绍吧
    第三次作业
    第一次作业心得
    耿丹161第一次作业
    第二次作业
    C#常用函数表及Asp.net(C#)常用函数表
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/weijiazheng/p/10548567.html
Copyright © 2011-2022 走看看