Python2 编码问题分析 (3)

Python2 编码问题分析

 

Python2 编码问题分析

 上面的文件声明 # -*- coding:gbk -*- 误导python解释器以gbk的编码方式去解析一个utf-8编码的文件。

实际开发过程中只需要统一将文件声明为utf-8即可。

再解释一下文件相关的编码概念:

文件本身的编码方式,该编码决定了文件数据以怎样的二进制格式保存在存储介质中。

文件内容显示的格式(解码方式),该编码方决定了文件内容是以怎样的解码方式被显示出来的。

一般文本显示类的程序打开一个文本时会根据文本文件起始字节判断该文本的编码方式,当然也可以有用户手动改变文件的解码方式。

如果文本程序或用户选择和编码方式不兼容的错误的解码方式,可能就会出现乱码。

但是对于可执行py文件而言,python解释器会以py文件开头的编码声明方式来解释文件内容,如果没有声明,python解释器会以默认的ASCII编码解析文件。

也就是只要python可执行文件的声明编码只要和实际文件的编码方式一致,就没有任何问题。因此可以使用# -*- coding:gbk -*-作为声明,但考虑到兼容性和可移植性,最好编码和声明均采用utf-8。

以上结果均在特定的平台和环境下得出,仅为个人见解。如有错误欢迎指正,共同探讨学习。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppzyx.html