zoukankan      html  css  js  c++  java
  • 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')
    在孤独中思考,在思考中成熟,在成熟中升华
  • 相关阅读:
    DAY7-面向对象之封装
    Java遇到的问题、错误——持续更新
    008单例、继承、final
    java一些使用
    2.1端口扫描器
    PyCharm设置
    常用算法
    PyCharm最新2018激活码,最新方法
    004数组
    042多进程
  • 原文地址:https://www.cnblogs.com/laogaoyang/p/5715671.html
Copyright © 2011-2022 走看看