python中的encode & decode

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,需要先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码.

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gbk')或unicode(str1,'gbk'),表示将gbk编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gbk'),表示将unicode编码的字符串str2转换成gbk编码。


如何判断文件中的编码格式呢?

大家不要忽略了我们python脚本头得一句类似注释的代码  #-*- coding: gbk -*-        ,正是它指定了我们这个脚本的编码格式。

如果一个字符串已经是unicode了,再进行解码(decode)则将出错,同理,用非unicode编码形式的str来encode会报错

因此通常要对其编码方式是否为unicode进行判断:isinstance(s, unicode)  # s为要判断的字符串


下面教大家几个小技巧:

1,获得系统的默认编码

import sys

sys.getdefaultencoding()  #如果是刚装完的python会输出ascii,这是默认的编码格式。

当然这个并不是不能修改的,下面就交给大家一个修改的方法:

建一个sitecustomize.py的文件,内容如下:

# encoding=GBK
import sys
reload(sys)
sys.setdefaultencoding('gbk') 

然后放到python安装目录的Lib/site-packages下,此时你再打开python编译器,用getdefaultencoding()查看,会发现输出为gbk~

如果你想用utf-8呢? 呵呵,这里我就不赘述了,你懂得~


附上一个简单示例:
#coding=gbk
s="中文"

if isinstance(s, unicode):

s=s.encode('gbk')

else:

s= s.decode('utf-8').encode('gbk')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值