• Python--由pycharm设置编码而去深入了解一下编码问题


    下面是一张pycharm的编码配置截图:

     为什么要使用utf-8?GBK是什么?unicode又是什么?with no bom是什么?with bom又是什么?

    先从为什么需要字符编码来说起吧?

    我们知道计算机只能处理数字:0和1 ,如果要处理文本那么就得把文本转换成数字。最早期外国人为了让计算机能够理解他们的英文,就把一个字节从(最高位没用到哦) 0~127 全部都给编码了。最后弄出来了个对照表,来表示生活中会出现的字符,这个对照表就是大家熟知的ASCII对照表。表中的编码称为ASCII码

    一个ASCII码对照表就秒天秒地了么?

    由于中国文字博大精深,外国人哪能料想一个字节的ASCII表示不了中文了;于是中国有位牛人编制出了一套新的编码表:占用了两个字节、还和ASCII不冲突。然后就解决了中文在计算机中的显示问题,后来慢慢就出来了一个叫GB2312的编码,为广大汉字使用者带来福音。

    能表示汉字就算完事儿了么?

    世界上有几百种语言 ,日本人、韩国人相继推出了他们的编码;编码越来越多,各国语言混合在一起就会出现乱码。所以一种号称能够统一万国语言的编码出现了,他就是后世广为使用的Unicode码:Unicode码通常使用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

    再完善一些:

    日子久了,人们吐槽:一个英文字母根本就占不了两个字节啊?本着节约不浪费的原则,国际组织又推出了一种叫UTF-8的编码,也称可变长度字符编码。好了这下问题都解决了。根据具体情况将Unicode字符编成1-6个字节,时至今日 utf-8编码被广泛运用。

    BOM:Byte Order Mark--定义字节顺序:

    数据在网络传输中分两种顺序:大头和小头。UTF-8编码不需要使用BOM来表明字节顺序,一般我们设置文件编码格式的时候,通常会遇到With No BOM 和 With BOM ,选UTF-8 With NO BOM或者UTF-8 Without BOM就行了。

    最后:

    Python诞生时间比Unicode编码还要早,所以早期的PYTHON是使用ASCII编码来表读文件的。

    1、我们写Python或者其它项目都习惯地将编译器调成UTF-8 编码,这样大家整整齐齐以防乱码。

    2、我们也会经常在.py文件的头部看到这样的声明:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-

    告诉python编译器,去以utf-8编码去加载所有字符。

  • 相关阅读:
    浅谈SQLite——查询处理及优化
    .NET 并行(多核)编程系列之七 共享数据问题和解决概述
    sql 存储过程学习一
    SQL中获得EXEC后面的sql语句或者存储过程的返回值的方法 【收藏】
    script刷新页面,刷新代码
    C#编程中关于数据缓存的经验总结
    SQL存储过程的概念,优点及语法
    SQLite数据库安装、试用及编程测试手记
    c# sqlite 数据库加密
    进销存管理系统的设计与实现
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/12322224.html
Copyright © 2020-2023  润新知