zoukankan      html  css  js  c++  java
  • python2.7 处理unicode和ascii字符串混用问题

    python2.7默认的编码方式为ascii码,如下可以查询:

    import sys
    sys.getdefaultencoding()

    如果直接在unicode和ascii字符串之间做计算、比较、连接,都会出错:

    s = '您好'
    u = u'您好'
    s == u
    __main__:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

    原因是:在进行同时包含 str 与 unicode 的运算时,Python 一律都把 str 转换成 unicode 再运算,当然,运算结果也都是 unicode。

    正确的处理方法是:

    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    s = '您好'
    u = u'您好'
    s == u

    结果会返回True

    ref: http://in355hz.iteye.com/blog/1860787

  • 相关阅读:
    ThinkPHP5.1 行为与钩子
    PHP 商品秒杀抢购业务流程
    MySQL 读写分离
    Redis 管道
    Redis 事务
    Redis 锁机制
    ThinkPHP 实现队列
    MySQL 存储引擎
    分布式唯一ID分配问题
    Lightscape
  • 原文地址:https://www.cnblogs.com/pinganzi/p/8038633.html
Copyright © 2011-2022 走看看