zoukankan      html  css  js  c++  java
  • python unicode 和 str 类型的关系

    python (2.X)在进行 运行时候字符串运算的时候, 分为两种类型 str, unicode

    前者是 二进制的形式进行对字符串的保存,

    后者是 以unicode的方式进行保存, 一般的工作方式为:

    str -> decode() -> unicode ->encode() -> str, 在所有的运行时都为unicode是一个良好的习惯, 一般来说系统的库都是支持 unicode(个别除外:csv等)。 而且第三方的库也是支持的。 只有在将数据保存到文件,数据库等其他的外部的时候,需要将其转化成str 的byte形式, 这时候需要提供 编码格式 常用的为 utf-8, 中文gbk也可以。 有一个必须要注意的问题是, 还有一种叫做 string_escape 或者是 utf-escape的编码, 是将编码后的str以 字符串的形式进行保存, 比如 :

    >>> u'中文'
    u'u4e2du6587'
    >>> u'中文'.encode('utf-8')
    'xe4xb8xadxe6x96x87'
    >>> u'中文'.encode('utf-8').encode('string_escape')
    '\xe4\xb8\xad\xe6\x96\x87'

    '\xe4\xb8\xad\xe6\x96\x87' 和 'xe4xb8xadxe6x96x87' 字符在进行输出到控制台的时候 效果是一样的, 一般看不出来, 实际上他们是不等的, 所有需要在使用的时候 进行decode('string_escape'') 才能为 正常的str的 字符串, 而 string_escape是大多数 日志库输出的格式,所以在进行转化的时候,需要将其转化回去

  • 相关阅读:
    分布式事务之最终一致性BASE理论
    CAP理论
    Comparator中返回0导致数据丢失的大坑
    电脑主板分类
    SimpleDateFormat线程不安全
    Redis面试题
    JS闭包
    ES6将两个数组合并成一个对象数组
    视频色彩空间RGB、YUV、YCbCr
    c#接口作用的深入理解
  • 原文地址:https://www.cnblogs.com/fartpig/p/4618580.html
Copyright © 2011-2022 走看看