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
    
  • 相关阅读:
    【LeetCode】155. Min Stack 最小栈
    【Java】修改Eclipse默认编码
    负数取模
    【算法第四版笔记】1.1 基础编程模型
    【计算方法】02
    【计算方法】01
    【Java】Java8中List排序
    选择排序算法
    排序算法
    【Java】Eclipse修改JSP文件默认编码
  • 原文地址:https://www.cnblogs.com/Young-shi/p/15136959.html
Copyright © 2011-2022 走看看