zoukankan      html  css  js  c++  java
  • (2)python字符编码转换

    【1】字符集的演进

    ASCII 码 255个字节, 1 bytes

    ==> 1980 gb2312 7000+汉字
    ==> 1995 GBK1.0 2w+汉字
    ==> 2000 GB18030 27000+行字


    ==》Unicode 2bytes
    ==> utf-8 是unicode的压缩格式,把存储内容是可变长的。
    =》英文还是以Ascii来存储(占1个bytes),中文用 Unicode存储(占3个 bytes)

    【2】转换规则

      

    【3】转换演示

    因为python3默认字符集编码是 utf-8,示意图 decode 默认转回来的就是使用utf8格式来解码,且加密后默认就是 Bytes 格式

    # -*- coding: UTF-8 -*-
    import
    sys # python3 默认使用的 utf8 编码,一个字母占1个字节,一个中文占3个字节 ,但所有数据类型、变量都是 Unicode s = '你好abc' print('默认编码是:',sys.getdefaultencoding()) print('utf-8编码(汉字占3个,字母占1个)',type(s),len(s.encode() )) # encode 不仅仅转了编码,还变成了 bytes 以16进制显示 ucode_to_gbk = s.encode("gbk") print('gbk编码(汉字占2个,字母占1个)',ucode_to_gbk,len(ucode_to_gbk)) gbk_to_utf8 = ucode_to_gbk.decode("gbk").encode("utf-8") print(gbk_to_utf8) print('utf-8编码(汉字占3个,字母占1个):',gbk_to_utf8,len(gbk_to_utf8)) # 默认会显示为 bytes print(gbk_to_utf8.decode(),len(gbk_to_utf8.decode('utf-8')))

    输出:

    默认编码是: utf-8
    utf-8编码(汉字占3个,字母占1个) <class 'str'> 9
    gbk编码(汉字占2个,字母占1个) b'xc4xe3xbaxc3abc' 7
    b'xe4xbdxa0xe5xa5xbdabc'
    utf-8编码(汉字占3个,字母占1个): b'xe4xbdxa0xe5xa5xbdabc' 9
    你好abc 5

    其他参考

  • 相关阅读:
    ffmpeg通过组播udp推ts流
    C# 多线程总结
    《图解HTTP》6-首部
    官网下载Java连接MySql驱动jar包
    FineReport——JDBC 连接 MySQL 数据库
    serializeArray()方式请求,php获取的方法
    win10无线wifi总是掉线断网
    C# Post请求中Json格式写法
    Layui upload 上传有进度条
    java 基于redis分布式锁
  • 原文地址:https://www.cnblogs.com/gered/p/13950029.html
Copyright © 2011-2022 走看看