博客
关于我
python基础之字符编码
阅读量:797 次
发布时间: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基础篇(6):global关键字
    查看>>
    python基础篇(5):None类型
    查看>>
    python基础篇(4):range语句
    查看>>
    python基础篇(3):print()补偿知识点
    查看>>
    python基础篇(2):字符串扩展知识点
    查看>>
    python基础篇(1):type()
    查看>>
    python基础篇(15):闭包
    查看>>
    python基础篇(14):多态
    查看>>
    python基础篇(13):类型注解
    查看>>
    python基础篇(12):继承
    查看>>
    python基础篇(11):封装
    查看>>
    python基础篇(10):自定义包
    查看>>
    python基础篇(10):类、对象与构造方法
    查看>>
    python系列【仅供参考】:python测试javaSDK总结
    查看>>
    python系列【仅供参考】:python斗地主
    查看>>
    Python基础教程(第2版 修订版) pdf
    查看>>
    python基础实践(四)
    查看>>
    Python基础学习笔记(九)常用数据类型转换函数
    查看>>
    Python基础学习参考(五):字符串和编码
    查看>>
    Python基础学习
    查看>>