12.字符编码

字符编码转换

不论在python2上还是python3的环境当中,转换步骤都是一样的。我们都要以unicode为中心,来回转换。 gb2312是gbk的以前的版本。gbk使我们windows默认的字符集。

 

步骤:

1.先告诉unicode我们本身的编码集。

     decode('本身的编码集')

2.此时我们的编码集就转换成了unicode。

3.我们在从unicode转换成我们想要转换的编码。

    encode('要转换的编码集')

 

例子:

我们分别在2.6和3.5上来实验编码问题

vim 2.6

#!/usr/bin/python.bak

a = '你好'

print a

 

[root@a ~]# chmod +x 2.6

[root@a ~]# ./2.6

  File "./2.6", line 2

SyntaxError: Non-ASCII character 'xe4' in file ./2.6 on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

 

我们发现执行报错了,因为2.6中默认的编码为ascii编码,不支持中文。要想支持中文。

我们需要在文件中声明我们文件的编码为-*-coding:utf-8 -*-。

 

#!/usr/bin/python.bak

#-*-coding:utf-8 -*-

a = '你好'

print a

[root@a ~]# ./2.6

你好

 

现在我们2.6就支持中文了。

 

 

现在我们把编码从utf8转换成gbk

import sys

a = '你好'

print a

a_gbk = a.decode('utf-8').encode('gbk')

print a_gbk

 

 

执行

[root@a ~]# ./2.6

你好

ţº

 

我们发现gbk的你好乱码了。这是因为我们xshell的编码我们调整为了utf-8。我们调整为"默认"就是gbk。在执行

[root@a ~]# ./2.6

浣.ソ

你好

 

这就发现我们已经将字符转换成了gbk了。

 

 

3.5当中的编码

python3.5当中默认的编码为utf-8.

 

我们转换成gbk 直接encodeing('gbk') 就可以了

原文地址:https://www.cnblogs.com/pangbing/p/9125836.html