zoukankan      html  css  js  c++  java
  • python 2 编码问题

    python一共有编码类型

    utf-8
    utf-16
    GB2312
    GB18030
    GBK
    

    python2 默认的编码模式是ascii,对于字符串默认是unicode编码,
    因此无法直接显示中文字符串,我们在态势感知查询前加了个u 用unicode编码,输出就正常,
    但是告警详情却乱码是因为我们py文件顶部写了 默认了用utf-8解码,所以unicode编码,utf-8解码就出现乱码# -*- coding:UTF-8 -*-

    api_params = {
        u"态势感知查询":{"Action": "1",},
        "告警详情":{"Action": "2",}
    }
    
    
    for k,v in api_params.items():
        print type(k)
        print k,v
    
    输出结果
    <type 'str'>
    鍛婅�璇︽儏 {'Action': '2'}
    <type 'unicode'>
    态势感知查询 {'Action': '1'}
    

    解决办法有很多种,

    1. 定义默认解码用Unicode解码 # -*- coding:gb18030 -*-
    2. 用python2自带的unicode方法 unicode()方法转换
    3. 或者decode("utf-8")
    import sys
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    api_params = {
        "态势感知查询":{"Action": "1",},
        "告警详情":{"Action": "1",}
    }
    
    
    for k,v in api_params.items():
        print unicode(k)
        print k.decode("utf-8"),v
    
  • 相关阅读:
    并发控制-CycliBarrier
    并发控制-条件对象(Condition接口)
    并发控制-信号量(Semaphore)
    控制并发-CountDownLatch
    控制并发流程
    [杂谈]重新认识RDD
    【杂谈】RDD-运行-2
    【杂谈】RDD-依赖
    [杂谈]Executor-1
    [杂谈]Rdd运行-1
  • 原文地址:https://www.cnblogs.com/Young-shi/p/15136959.html
Copyright © 2011-2022 走看看