博客
关于我
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 web自动化测试 —— 文件上传
    查看>>
    Python web自动化测试 —— 文件上传!
    查看>>
    Python Web自动化测试开发环境搭建(附安装包与虚拟机环境)
    查看>>
    python win32api键盘_Python win32api.keybd_event模拟键盘输入
    查看>>
    python Windows显示当前鼠标坐标
    查看>>
    python Workbook 表格宽度
    查看>>
    python | flanker,一个神奇的 Python 库!
    查看>>
    python | flower,一个强大的 Python 库!
    查看>>
    python | funcy,一个超强的 提供函数式编程工具 Python 库!
    查看>>
    python | ggplot,一个超强的 Python 库!
    查看>>
    python | grab,一个强大的 Python 库!
    查看>>
    python | h5py,一个无敌的关于 HDF5 的 Python 库!
    查看>>
    python | huey,一个非常厉害的 任务调度 Python 库!
    查看>>
    python | hypothesis,一个有趣的 Python 库!
    查看>>
    python | Indico,一个超酷的 Python 库!
    查看>>
    python | isort,一个有趣的 自动整理导入语句 的Python 库!
    查看>>
    python | jinja,一个超酷的 Python 库!
    查看>>
    python | joblib,一个强大的 Python 库!
    查看>>
    python | jsonschema,一个实用的 验证 JSON 数据结构 Python 库!
    查看>>
    python | lxml,一个超酷的 关于XML/HTML 文档 Python 库!
    查看>>