zoukankan      html  css  js  c++  java
  • python2和python3的编码问题

    python2中有两种类型

    str字符串和unicode字符串

    python3则改成了

    bytes和str字符串

    在python2中‘xxx’和b‘xxx’都是str字符串,u‘xxx’是unicode字符串,即python3中的bytes在python2是不存在的,都归属于str字符串

    在python3中unicode是不存在的,被归并到str字符串里面的,即‘xxx’和u‘xxx’都是str字符串,b‘xxx’是bytes

    主要的原因是python2的默认编码是asscii码,而python3的默认编码是utf-8

    utf-8相较于asscii能容纳更多的字符,举个例子,utf-8能正常显示中文,而asscii则不行。具体有什么差异就不详细说了。

    所以在python2中如果要显示中文需要做编码处理

    编码处理的一般方式是

    str通过decode函数编码成unicode,然后通过encode编码成str

    而python3中可以正常显示中文,不做编码处理也不会有什么大问题

    随便说一下python2中str有encode和decode两个函数,encode用来将unicode编码成指定的编码,decode用来将指定编码编码成unicode

    encode其实是将字符串变成bytes,因为python2没有bytes所以其还是str字符串。

    python3中将bytes和str拆开了,str就只有encode函数可以使用了,使用encode变成bytes之后,bytes类型可以使用decode函数

  • 相关阅读:
    DNN SEO专题 (收集)
    DataTable或者DataSet匯出Excel
    用C#制作PDF文件全攻略(转)
    BlogEngine资料收集
    DNN架构解析(收集)
    Community Server:快速找到需要修改的文件[技巧]
    通用的分页存储过程
    DataTable/DataSet汇出Excel
    百试不爽的30条职场经验(转)
    等宽字体
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/8582606.html
Copyright © 2011-2022 走看看