一.了解字符编码的知识储备

1.文本编辑器存取文件的原理(nodepad++,python,word)

  • 打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放于内存中的,断电后数据丢失
  • 要想永远保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上
  • 在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已.

2.python解释器执行py文件的原理,(python,test.py)

  • 第一阶段: python解释器启动,此时就相当于启动了一个文本编辑器
  • 第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中
  • 第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码

3.过程:

  文本编辑器°一个文件的三个过程:

  • 先启动文本编辑器
  • 文件编辑器会将文件内容读入内存
  • 将读入内存的内容显示到屏幕上

  CPython解释器执行一个py文件的三个过程:

  • 先启动python解释器
  • python解释器会将py文件的内容当中普通的文本内容读入内存
  • 开始解释执行刚刚读入内存的代码,识别python语法

4.字符编码

  字符编码指的是字符转换成或者编码成数字

  编码的过程一定要遵循一个标准,该标准称之为字符编码表

  • ASCII表:只能识别英文字符,用8bit对应一个英文字符  (一个英文字符===>1Bytes)
  • GBK表:可以识别中文字符/英文字符,用8bit对应一个英文字符,用16bit对应一个中文字符(1个英文字符==>1Bytes/  1个中文字符==>2Bytes)
  • unicode(内存中默认使用该编码) :用2Bytes表示一个字符(特点: 1.可以识别万国字符    2.与各种字符编码的二进制数字都有对应关系)
  • utf-8全称Unicode Transformaation Format: (1个英文字符==>1Bytes        1个中文字符==>3Bytes)

结论:

1.编码与解码

  字符---------编码--------->>数字

  字符<<-------解码-----------数字

  unicode二进制---------编码-------->>utf-8二进制

  unicode二进制<<-------解码----------utf-8二进制

2.内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码    (应该采用utf-8)

  unicode的特点:

      1.可以识别万国字符

      2.与各种字符编码的二进制数字都有对应关系

3.解决乱码问题的核心

     1.字符当初以什么编码存的,就应该以什么编码去读

     2.保证运行python程序的前两个阶段不乱码的解决方案:添加文件头  (在文件首行添加  "#coding: 文件当初存的字符编码)

4.python解释器默认的编码

  python3:      utf-8

  python2:      ASCII

python字符编码和文件处理的更多相关文章

  1. Python 字符编码及其文件操作

    本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...

  2. python字符编码与文件打开

    一 字符编码 储备知识点: 1.计算机系统分为三层: 应用程序 操作系统 计算机硬件 2.运行Python程序的三个步骤 1.先启动python解释器 2.再将python文件当做普通的文本文件读入内 ...

  3. 06 Python字符编码与文件处理

    python垃圾回收机制: python中的垃圾回收机制是以引用计数为主,分代收集为辅,引用计数的缺陷是循环引用的问题,一个对象的引用数为0 ,那么这个对象就会被python虚拟机回收内存 字符编码 ...

  4. python字符编码与文件操作

    目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...

  5. python基础(三)----字符编码以及文件处理

      字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程   字符--------(翻译过程)------->数字   这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...

  6. python基础知识5---数据类型、字符编码、文件处理

    阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业   一 引子 1 什么是数据? x=10,10 ...

  7. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  8. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  9. python文件操作:字符编码与文件处理

    一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...

随机推荐

  1. Thymeleaf--:fragment

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" ...

  2. shiro--认证部分

    1.1 什么是shiro shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证.用户授权. spring中有spring security (原名Acegi),是一个权限框架, ...

  3. Service生命周期

    https://www.cnblogs.com/huihuizhang/p/7623760.html (1)Service是单例的,只要没有destroy,多次startService或bindSer ...

  4. Tesseract识别图片提取文字&字库训练

    文中测试了3.0和4.0两个版本.发现3.0识别效率不准确,需要训练词库.4.0识别效率就比较高了,而且支持结果生成pdf.txt等格式.所以推荐使用4.0版本. 这个工具可以用在爬虫的时候获取验证码 ...

  5. Windows PowerShell 入門(1)-基本操作編

    Microsoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.インストール.起動終了方法.コマンドレット.命名規則.エイリアス.操作方法の調べ方について ...

  6. nginx proxy_set_header设置、自定义header

    先来看下proxy_set_header的语法 语法: proxy_set_header field value; 默认值: proxy_set_header Host $proxy_host; pr ...

  7. git与eclipse集成之导入组件到Eclipse工程

    从工作目录中选择要导入的组件,右键选择:Import Projects,弹出窗口如下图所示,选择Import as general project 点击next,修改或使用默认的组件名称 点击fini ...

  8. struts2框架之输入校验(参考第二天学习笔记)

    输入校验: 1. 分类 客户端校验:javascript,它是用户体验而已,可以绕开. 服务器端校验 * 代码校验 1). 要求Action必须继承ActionSupport 2). 重写Action ...

  9. [转] Git + LaTeX workflow

    本文取自 https://stackoverflow.com/questions/6188780/git-latex-workflow 感谢 abcd@stackoverflow Changes to ...

  10. JS:判断是否是移动端

    通过User-Agent判断 代码: if(navigator.userAgent.match(/mobile/i)) { //业务层代码 $('body').removeClass("si ...