博客
关于我
python基础之字符编码
阅读量:796 次
发布时间:2023-03-07

本文共 1308 字,大约阅读时间需要 4 分钟。

了解字符编码的知识储备

一 计算机基础知识

计算机的工作原理基于二进制数系统。人类使用的字符(如文字、符号)无法直接被计算机理解,因此需要通过字符编码将其转换为二进制数,从而在计算机中存储和处理。

文本编辑器存取文件的原理(Notepad++、PyCharm、Word)

文本编辑器在存取文件时,主要完成两个操作:

  • 将文件内容从硬盘读取到内存中(读取文件)。
  • 将内存中的内容写入硬盘(保存文件)。
  • Python解释器执行PY文件的原理

    Python解释器执行PY文件的过程分为三个阶段:

  • 解释器启动:类似于打开文本编辑器。
  • 读取文件内容:将文件内容从硬盘读入内存,解释器不关心文件扩展名。
  • 解释并执行代码:解释器识别语法并执行代码,例如name = "egon"会创建内存空间存放字符串。
  • Python解释器与文件编辑器的异同

  • 相同点:都读取文件内容到内存中。
  • 不同点:文件编辑器主要用于显示和编辑文本,而解释器读取文件后会解释并执行代码。
  • 字符编码介绍

    什么是字符编码

    字符编码是将字符(如文字、符号)转换为二进制数的过程。计算机只能理解二进制数,因此需要字符编码来实现字符与二进制数的映射。

    字符编码的发展史与分类

  • ASCII:最初的字符编码,最多支持256个字符,涵盖英文字母、数字和特殊字符。
  • GBK:为了支持中文,中国开发了GBK编码,每个中文字符占用2个字节。
  • UTF-8:为了兼容全球字符集,UTF-8使用可变长编码,大多数英文字符占1个字节,中文字符占3个字节。
  • UTF-8与ASCII的区别

    字符 ASCII UTF-8
    A 01000001 01000001
    x 11100100 10111000 10101101

    UTF-8兼容ASCII,并且在存储和传输时更高效。

    字符编码的应用

    文本编辑器之Notepad++

    • 读取文件:从硬盘读取文件内容到内存。
    • 存文件:将内存中的内容写入硬盘。
    • 乱码分析
      • 存文件时乱码:编码格式不一致(如Shift-JIS存GBK文件)。
      • 读文件时乱码:选择错误的解码方式。

    文本编辑器之PyCharm

    PyCharm支持多种编码格式,默认读取文件时会自动检测编码格式。用户可以手动选择编码格式或利用PyCharm的reload功能重新加载文件。

    Python程序的三个阶段

  • 启动Python解释器:类似于打开文本编辑器。
  • 读取文件:将文件内容读入内存。
  • 执行代码:解释器解释并执行代码,例如x = '林'会申请内存空间存放字符串。
  • Python2与Python3字符串类型的区别

    • Python2
      • 有两种字符串类型:strunicode
      • str类型存储字节序列,unicode类型存储Unicode字符。
    • Python3
      • 唯一的字符串类型是str,默认存储Unicode字符。
      • bytes类型存储字节序列。

    总结

  • 字符编码的核心法则:编码与解码必须一致。
  • 内存编码:统一使用Unicode编码,兼容所有语言。
  • 存储与传输编码:优化存储和传输效率,常用UTF-8编码。
  • 通过合理选择编码格式和统一使用Unicode编码,可以避免乱码问题,实现跨平台兼容。

    转载地址:http://ioofk.baihongyu.com/

    你可能感兴趣的文章
    Python基础_列表 list
    查看>>
    python系列【仅供参考】:python异步库调用gevent和asyncio对比
    查看>>
    python基础3
    查看>>
    Python基础08 面向对象的基本概念
    查看>>
    python系列【仅供参考】:python二进制转10进制
    查看>>
    Python基础-函数篇
    查看>>
    python基础---->常用模块
    查看>>
    Python基础(2):控制结构
    查看>>
    Python基础 | 关于“循环”那些事
    查看>>
    python系列【仅供参考】:python之subprocess模块rsync拉取文件
    查看>>
    python系列【仅供参考】:python 远程rdp
    查看>>
    python基础
    查看>>
    Python基本语法与变量类型
    查看>>
    python基本数据类型(容器)- tuple list dict set
    查看>>
    python基本工资的调整方案_Python薪资又涨了!这可咋办!
    查看>>
    Python基准测试和性能分析内存管理和垃圾回收
    查看>>
    Python基于RESTful风格的接口自动化测试实战
    查看>>
    python基于pygame实现跨年烟花效果
    查看>>
    python基于flask搭建http服务(四)—— Docker容器化部署
    查看>>
    python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
    查看>>