zoukankan      html  css  js  c++  java
  • 补充:pyhton 2 和3中的beyts类型

    在python2里,bytes == str 

    python2里还有个单独的类型是unicode , 把字符串解码后,就会变成unicode.

    既然python2中byets == str,那为什么还要有bytes类型呢?

    答:因为要表示图片,视频等二进制格式的数据.

    在python2中,如何定义一个Unicode类型的数据呢?

    s = u"中国"  # 这样就定义了一个Unicode类型的数据.

    python2中以utf-8,gbk 或其他编码编写的代码,加载的内存中,依然是原来的编码类型.不会变化

    python3中以utf-8,gbk 或其他编码编写的代码,加载的内存中,会自动转换成unicode

    unicode 和 utf-8的关系:

    • Unicode 是「字符集」 包含全球所有字符的对应关系的一个字符集合.Unicode 是一个标准,定义了一个字符集以及一系列的编码规则,即 Unicode 字符集和 UTF-8、UTF-16、UTF-32 等等编码
    • UTF-8 是「编码规则」只是一个编码规则.

    当文件保存为unicode格式后,文件在全球其他电脑上就可以正常显示了.因为Unicode会自动把文件的数据类型转换为使用者电脑编码的类型来显示.

    PY3 除了把字符串的编码改成了unicode, 还把str 和bytes 做了明确区分, str 就是unicode格式的字符, bytes就是单纯二进制啦。

    py3 str = py2 unicode

    最后再提示一下,Python只要出现各种编码问题,无非是哪里的编码设置出错了
    常见编码错误的原因有:

        • Python解释器的默认编码
        • Python源文件文件编码
        • Terminal使用的编码
        • 操作系统的语言设置
  • 相关阅读:
    charles安装以及手机端的设置
    ON DUPLICATE KEY UPDATE 用法与说明
    亿级流量架构之网关设计思路、常见网关对比
    灰度发布系统架构设计
    Jmeter 并发测试
    springboot --- Swagger UI初识
    TortoiseGIT 一直提示输入密码的解决方法!
    MySQL 5.6 参数详解
    LVS 轮询调度详解
    MongoDB 权限
  • 原文地址:https://www.cnblogs.com/lovepy3/p/8849824.html
Copyright © 2011-2022 走看看