zoukankan      html  css  js  c++  java
  • Python3中的编码问题

    编码方式介绍

    我们首先来熟悉一下常见的一些编码方式,按照时间轴来划分,共有以下几种编码方式(常见):

    • ASCII编码方式:对127个常见字符进行编码,其中包含了10个阿拉伯数字,共52个大小写英文字母。
    • GB2312编码方式:由中国提出,对常见的汉字进行了编码,并且兼容ASCII编码。
    • Unicode编码方式:国际统一字符编码,对所有的常见字符进行统一编码。
    • UTF-8编码方式:由Unicode引申出来的可变长编码方式。
      以上都是对字符编码的一些方式,目的就是为了显示、存储、传输的方便。

    如果我们按照编码的长度进行区分:

    • ASCII编码方式:1个byte
    • GB2312编码方式:若干byte
    • Unicode编码方式:若干byte,编码长度最长。
    • UTF-8编码方式:若干byte
      因为如果在存储或者是传输时使用Unicode编码,那样太浪费空间了,所以才推出一个可变长的UTF-8编码。这样既保证可以对所有的字符进行编码,又能合理利用空间。

    Python3的编码方式

    在Python3中,字符串str是用Unicode编码的。
    字符串str

    1. 在内存中是Unicode编码。
    2. 在进行网络传输或者是磁盘存储时,需要转化成字节码(bytes),这时就需要用以上几种编码方式进行编码(encode)了。

    因为英文字符只有一个字节,所以可以用ASCII编码。但是中文字符不止一个字节,所以要用UTF-8进行编码,当然英文同样可以用UTF-8进行编码。
    既然传输与存储对字符进行编码了,那我们将其读取到内存中时,就需要对其进行解码(decode)操作了,用什么编码,那么就用什么解码。逆向操作完之后,此时内存中就又是Unicode编码的字符了。

    Reference

  • 相关阅读:
    注册、登录、忘记密码实战
    python3错误:format() takes at most 2 arguments
    Charles手机抓包简要步骤
    VARCHAR2(N CHAR)与VARCHAR2(N)的区别
    关于VI一些常用的操作
    LINUX下 基于 Socket 的 UDP 和 TCP 编程具体实现
    VC++6.0实现文本格式的转换保存
    crt的sftp使用用于Windows与Linux之间的通讯
    pl/sql 导出脚本与使用
    在oracle10g下启动服务报 Permission denied错误解决方法
  • 原文地址:https://www.cnblogs.com/yinzm/p/7650469.html
Copyright © 2011-2022 走看看