• python 字节与字符串转换编解码格式


    1、如果没有设置字符串编码格式,那么将采用系统默认编码格式

    name = 'laogaoyang' # 采用系统默认编码格式
    nameBytes = name.encode('utf-8') # 先将 name 解码(采用系统默认格式),然后用 'utf-8' 编码
    nameStr = nameBytes.decode('utf-8') # 用什么格式编码就需要用同样格式去解码,否则出错

    说明:
    name.encode('utf-8')  此处将 name 重新编码为 'utf-8',要重新编码首先要解码,此处并没有指明解码方式,那么将采用系统的默认解码格式(编解码格式相同,不会出错)

    2、主动设置字符串编码格式为 'utf-8',假设系统编解码格式为 'ascii'

    # -*- coding: utf-8 -*-
    name = 'laogaoyang' # 采用指定的编码格式 'utf-8'
    nameBytes = name.encode('utf-8')  # 这里出错了

    说明:
    上一个例子编码成 'utf-8' 是正常的,因为编解码格式相同
    此处编码采用 'utf-8'格式,并没有指明解码方式,那么将采用系统的默认解码格式(即 'ascii', 编解码格式不相同,出错),修正方法有两种,如下所示

    明确指定解码格式
    # -*- coding: utf-8 -*-
    name = 'laogaoyang' # 采用指定的编码格式为 'utf-8'
    nameBytes = name.decode('utf-8').encode('utf-8')
    修改默认解码格式
    # -*- coding: utf-8 -*-
    import sys
    sys.setdefaultencoding('utf-8')
    name = 'laogaoyang' # 采用指定的编码格式 'utf-8'
    nameBytes = name.encode('utf-8')
    在孤独中思考,在思考中成熟,在成熟中升华
  • 相关阅读:
    ubuntu下crontab启动,重启,关闭命令
    解决ubuntu16.04下boot空间不足的方法
    Go语言变量作用域
    Go语言函数
    xftp取消自动更新
    nginx下http如何转https访问
    mysql 5.7.22 zip安装
    微服务本机搭建
    微服务集成mybatis问题
    eclipse导入本地maven项目时,有的项目的结构是文件夹的机构
  • 原文地址:https://www.cnblogs.com/laogaoyang/p/5715671.html
Copyright © 2020-2023  润新知