• 补充: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使用的编码
        • 操作系统的语言设置
  • 相关阅读:
    Xcode8 1 创建coreData的ManagedObject后,报错 linker command failed with exit code 1
    在IOS中根据圆心坐标、半径和角度计算圆弧上的点坐标
    NodeJS学习目录
    nodeJS之URL
    nodeJS之域名DNS
    初识nodeJS
    使用nodeJS实现前端项目自动化之项目构建和文件合并
    nodeJS之fs文件系统
    nodeJS之二进制buffer对象
    nodeJS之进程process对象
  • 原文地址:https://www.cnblogs.com/lovepy3/p/8849824.html
Copyright © 2020-2023  润新知