首页 > 编程语言 > 详细

python 2 编码问题

时间:2021-08-13 14:47:43      阅读:17      评论:0      收藏:0      [点我收藏+]

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

python 2 编码问题

原文:https://www.cnblogs.com/Young-shi/p/15136959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!