python的编码问题

今天学习了python,作为一个新手,对python的编码问题仔细研究了一番,自己的理解如下:

1、python代码的文件是以ASCII编码存储,所以当python代码文件中有中文时(包括注释),文件开头都要加#coding=utf-8 或#coding=gbk。

2、python内部使用的都是Unicode编码运行,所以当要对中文的字符串进行处理的话就要将“步骤1”中的utf-8或者gbk转化成Unicode编码:decode("utf-8")或decode("gbk")。这样就可以随便处理,包括计算中文字符串的长度。

3、Windows下控制中使用的是gbk,所以要在Windows中输出中文,必须将“步骤2”中的Unicode编码转化成gbk:encode("gbk")

例1

#coding=gbk
b="中国".decode("gbk")#将gbk转换成代码unicode,可以随便处理(包括计算字符串长度)
print(len(b))
print(b.encode("gbk"))#输出时将unicode编码变成gbk编码输出

结果是:

2

中国

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

例2

 #coding=utf-8
b="中国".decode("utf-8")#将utf-8转换成代码unicode,可以随便处理(包括计算字符串长度)
print(len(b))
print(b.encode("gbk"))#输出时将unicode编码变成gbk编码输出          

结果是:

2

中国

其中例1,我感觉可以对python中的编码问题可以通用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值