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')

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

搜神客

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值