关于python文件的字符编码

# -*- coding: utf-8 -*-字符编码是啥?

在弄清楚字符编码是啥之前我们要先考虑一个问题。如果计算机最基础的就是0和1,那么他们是如何识别我们输入的英文字母和数字的。

下面是数学知识,我们现代人常用的计数方式是十进制,就是从1数到9如果再数一个数前面就进以为成为10.计算机最基础的就是二进制,0和1数到1再网上书就进一位。二进制和十进制是可以互相转换的。比如二进制10就是十进制数字2.计算机通过二进制可以给十进制进行编码。除此之外二进制还可以转换成八进制和十六进制。通过这些数学转换,我们可以创建一个集合。可以理解成可以通过二级制,八进制,十进制,十六进制的数学关系创建一张对应表。

就像下图一样。dec是十进制,HX是十六进制 Oct是八进制。每一个数字都可以对应一个字符,比如字母和数字。这样我们就可以向计算机输入英文了。

通过上面的表让我们认识到,变成本质上就是英文和数学的结合产物。

当我们弄清楚计算机数学和英语的关系之后,我们再来说字符编码,说白了字符编码就是类似上面的表,上面的表示ascii表,为了更好的表示字符,还有很多比较强大的表。我们在使用记事本,word等文本编辑程序的时候,就会使用到这些字符表。

有一种字符编码叫做GBK,这个是中文字符集,这个字符集和ascii的表感觉差不多,但是由于汉子比较复杂,所以有些汉子内容需要通过一个公式来计算。

[(GBKH-0x81)*0xBE+(GBKL-0x41)]*(汉字离散后每个汉字点阵所占用的字节)

好吧我也不知道这个公式表达的是什么。

一般GBK只在中文软件程序中使用,如果在英文软件程序环境下,程序不能解析GBK那么程序就会出现乱码。

为了保证所有的程序环境都可以正常显示文字,就出现了UTF-8。这个字符编码可以很好的兼容中文英文,python默认就会读取UTF-8字符编码的文件。

那我们如何设置字符编码?

如果你和我一样的文本编辑器可以在菜单中找到这个选项,然后你发现有很多字符编码可以选择。

除此之外,我们还可以使用下面这行代码来让python使用utf-8的模式来读取这个文件。

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

就是告诉python我的文件要用utf-8字符集来解析。

在未来的变成当中,html,java都会遇到很多字符编码的问题,一般文字出现乱码都是字符编码的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容