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使用的编码
        • 操作系统的语言设置
  • 相关阅读:
    vue项目中使用定时器,离开页面时清除定时器
    不能在循环中使用res.send(err);
    React使用require加载图片失败
    实验五 单元测试
    实验四 代码评审
    UML 建模工具的安装与使用
    结对编程 第二阶段
    结对编程
    GIT 代码版本管理
    结构化方法与面向对象化方法的比较
  • 原文地址:https://www.cnblogs.com/lovepy3/p/8849824.html
Copyright © 2011-2022 走看看