关于编解码的问题

来源:2-9 计算机的字符与编码集

wxz123

2019-06-30

在头文件是 # -- coding: utf-8 -- 或者没有时,运行
a='小甲’
print(a)
输出为:小甲

当头文件是 #coding=gbk 时,运行
a='小甲’
print(a)
输出为:灏忕敳

在网上查了头文件的作用是python3编辑器以什么方式解码,但解码前这些代码是以什么格式进行编码的呢?
用python3写代码时,是有固定的编码格式吗?(是utf-8吗?),这个固定的编码格式是否可以变动(比如变成gbk),要怎么变呢?是和所使用的代码编辑器有关呢?
图片描述
这个是我使用python3的编辑器(spyder)的截图,这个Encoding:ASCII是什么意思,是我写的代码的编码格式吗?还是这个编辑器将以这个格式对代码进行解码?
图片描述
这个是同一个py文件用Notepad++打开的截图,这里的UTF-8又是什么意思,为什么同一个py文件,用编辑器打开是Encoding:ASCII,用Notepad++打开是UTF-8

写回答

1回答

CircleYua

2019-06-30

Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。Python2则需要指定编码,否则在执行过程会出现报错。

使用编辑器可以变动Python的存储格式;使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现错误SyntaxError: (unicode error) ‘utf-8’ codec can’t decode

对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。


0
1
wxz123
非常感谢!
2019-07-01
共1条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程