python乱码解决之decode()与encode()函数与错误显示加解决办法

一、字符串编码常用类型:utf-8,gb2312,cp936,gbk等。

python中,我们使用decode()和encode()来进行解码和编码

在python中,使用unicode类型作为编码的基础类型。即

str ---- ( decode ) -----> unicode ----- ( encode )---->str

u = u'中文' #显示指定unicode类型对象u
str = u.encode('gb2312') #以gb2312编码对unicode对像进行编码
str1 = u.encode('gbk') #以gbk编码对unicode对像进行编码
str2 = u.encode('utf-8') #以utf-8编码对unicode对像进行编码
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,以获取unicode
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的unicode类型

借鉴:https://www.cnblogs.com/evening/archive/2012/04/19/2457440.html

二、 python2.7运行出现的Unicode equal comparison failed to convert both arguments to Unicode - interpreting

错误原因:
uncode编码警告:在unicode等价比较中,把两个参数同时转换为unicode编码失败。中断并认为他们不相等。
这是由于编码解码不统一造成的坑
我们在脚本中统一指定编码

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报错UnicodeDecodeError:
‘ascii’ codec can’t decode byte 0x?? in position 1: ordinal not in
range(128),python没办法处理非ascii编码的,此时需要自己设置python的默认编码,一般设置为utf8的编码格式。

在程序中加入以下代码:即可将编码设置为utf8

import sys
reload(sys)
sys.setdefaultencoding('utf8')
三、数据库插入又有乱码,这是因为我的数据源与数据库表的编码方式不同,我们再转换一下
'idc': ip_info['idc'].encode("utf-8"),
//出现编码错误的地方直接用encode()函数重新编码就好了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值