Python字符串编码

在Python中有些特殊的地方是存在两种字符串,分别为str和unicode字符串,他们都继承自basestring。
如:s="hello world",s为str;us=u"hello world",us为unicode。

使用help(str)和help(unicode)可以查看各自说明,他们都有decode、encode方法,
decode用于将str字符串解码为unicode字符串,
encode用于将unicode字符串编码为str字符串。

在指定编码如下时有
#-*- encoding: UTF-8 -*-

示例解析:
>>> s='hello 世界'          //s为str类型,utf-8编码
>>> dutf8=s.decode('gbk')   //与源编码不符,用gbk解码会出错
>>> dgbk=s.decode('utf-8')  //解码正确
>>> us=dgbk.encode('gbk')   //编码转换正确,us为utf-8编码

总结:

1、unicode编码为中转编码,编码顺序为:

                 decode           encode
str (utf-8编码)  ------>  unicode ------> str(gbk编码或者其他编码)

2、要显示汉字必须用unicode编码途径有二
 1. s.decode("utf-8")
 2. u"字符串"

3、由上可知,要想转码正确,首先必须知道转换对象的正确编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值