学python之encode()、decode()

1 区分维度1:系统编码       文件编码      python编码

2 区分维度2:python开发过程中,涉及到的编码:(1)python程序文件的编码;(2)python运行环境ide的编码;(3)python程序读取外部文件的编码

3 系统编码:即操作系统的编码

import sys
sys_code = sys.getdefaultencoding()
print(sys_code) 

我用的是win10系统,执行的结果是utf-8,一直以为windows的编码是gbk,瞬间懵圈~~~,百度告诉我win10就是utf-8

4 文件编码

 python2 中需要设置,

方法:想把文件编码设置成gbk,在文件最开始设置如下

#-*-  coding:gbk -*- 

python3中默认为utf-8,想要更改,在文件开始设置一下即可。

5 python文件执行过程中的编码:

   python2 :标准ASCII码

   python3:unicode

   例如:我用python3执行:   

s = '明天ok'   #s的编码是unicode
s1=s.encode('utf-8')  #s1是s的utf-8的编号后结果,打印出来:byte格式的
print(s1)
s2 =s.encode('gbk')
print(s2)
s1_p = s1.decode('utf-8')  #把s1解码以后变成的字符串。
print(s1_p)

执行结果:

b'\xe6\x98\x8e\xe5\xa4\xa9ok'   -----s1
b'\xc3\xf7\xcc\xecok'                  ------s2
明天ok                                        ------s1_p  

程序执行过程中,只有编码格式为unicode的才能显示成字符串的样子

6  脑补的文件读取和存储,哈哈,不知道对不对,我就这么理解的。

学python之encode()、decode()_第1张图片

说明:

1 文件包含python文件,和其他文件;Python文件就是按照默认或者设置的来;其他文件按照系统的来。

2 目前的简单程序,我看到的文件应该都在内存上,所以能正常的执行,要保证ide的编码支持。

3 ide的编码看软件的设置吧。

 

你可能感兴趣的:(python)