python中的str,unicode和gb2312

实例1

v1=u '好神奇的问题!?'

type(v1)-》unicode

v1.decode("utf-8")# not work,because v1 is unicode already

v1.encode("gb2312")#work,convert from unicode into gbk2312

【发现】

decode是把指定的对象转化为unicode(unicode包含utf-8,utf-16),并且指明了待转化对象的编码方式。

encode是把把unicode对象转化为其他编码的过程。

实例2:

v1=r'C:abc1.txt' 

v2=r'好神奇的问题'

v3=r'C:abc12dc文本.txt'

v4=r'\rdfazzwangmaya2013 projectimageshahah鏉愯川璐村浘.jpg'

    .decode("utf-8")   .decode("gb2312")
v1   √   √
v2   ×   √
v3   ×   √
v4   √   ×

【发现】

    对于一个str类型的字符串,如果你想着都用utf-8来解码是完全不行的。因此,我们期望一个程序的某个方法返回特定的编码(如unicode),在这种情况下,我们就可以直接使用encode方法转化为我们想要的编码,而省去了解码这个难题。

原文地址:https://www.cnblogs.com/zzPrince/p/5087084.html