python文件处理之编码字符
发布日期:2021-05-04 19:07:09 浏览次数:32 分类:精选文章

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

储备知识

硬件基础

所有软件运行都依赖于硬件支持。现代计算机的核心硬件包括CPU、内存和硬盘。这些硬件在数据存取和处理方面发挥着关键作用。

硬件功能解析

  • 存储软件:软件代码及相关数据最初存储在硬盘中。
  • 加载软件:运行时,软件从硬盘读取数据至内存。
  • 执行程序:CPU从内存取指令并执行,生成运行结果。
  • 保存输出:运行结束后,生成的数据再次写入硬盘。
  • 文本处理流程

    文本编辑器在读取和存储文本文件时,都涉及字符编码问题。

    文本编辑器读取过程

  • 启动编辑器(如Notepad++、PyCharm、Word等)。
  • 读取文件内容至内存。
  • 显示内容至屏幕。
  • Python解释器执行过程

  • 启动Python解释器(类似文本编辑器)。
  • 读取文件内容至内存。
  • 解释并执行代码。
  • Python解释器与文本编辑器的异同

    相同点

  • 前两个阶段完全一致:
    • 从硬盘读取文本内容至内存。
  • 不同点

  • 第三阶段处理方式不同:
    • 文本编辑器仅显示或编辑内容。
    • Python解释器执行代码,需识别语法。
  • 字符编码介绍

    字符编码是人类字符与计算机二进制数之间的转换机制。

    字符编码的核心概念

  • ASCII编码:最初用于英文字符,1字节(8位)对应一个字符。
  • 扩展编码:如GBK、Shift-JIS,支持多语言字符。
  • Unicode编码:统一字符编码,支持万国字符,2字节(16位)对应一个字符。
  • Unicode的发展历程

  • 阶段一:ASCII的统治

    • 只支持英文字符,1字节对应1个字符。
  • 阶段二:多国字符的混战

    • 各国开发了本地编码(如GBK、Shift-JIS)。
    • 存取文件时容易出现乱码。
  • 阶段三:统一发展

    • Unicode在1990年研发并逐渐普及。
    • 提供统一字符对应关系,支持万国字符。
  • 编码与解码机制

    编码的作用

  • 将字符转换为二进制数据。
  • 在存储和传输过程中保持一致性。
  • 解码的作用

  • 将二进制数据转换为字符。
  • 解决不同编码格式之间的兼容性问题。
  • UTF-8编码的优势

  • 可变长度编码
    • 英文字符1字节,中文字符3字节。
  • 兼容性
    • 支持多国字符,且占用空间最少。
  • UTF-8的适用场景

  • 新开发的软件和文件应采用UTF-8。
  • 老旧文件需转换为UTF-8后再存储。
  • Python编码应用

    Python程序乱码的原因

  • 文件头编码不匹配:存储时使用的编码与读取时不一致。
  • 默认编码设置:Python默认编码可能与文件存储编码不符。
  • 解决方法

  • 文件头注明编码

    • Python3默认为UTF-8。
    • Python2默认为ASCII。
    • 建议在文件顶部注明编码格式。
  • 字符串处理

    • Python3中字符串默认为Unicode格式。
    • Python2中需在字符串前加u或使用unicode类型。
  • 编码与解码示例

    # 示例1:字符串编码与解码data = 'hello world'data_bytes = data.encode('utf-8')  # 转换为字节流data_str = data_bytes.decode('utf-8')  # 解码为字符串

    总结

    字符编码是文本存取和处理的基础,正确的编码方式可以避免乱码问题。建议统一使用UTF-8编码,确保不同平台间的文本一致性。

    上一篇:python 之名称空间与作用域
    下一篇:python之列表类型内置方法

    发表评论

    最新留言

    关注你微信了!
    [***.104.42.241]2025年03月26日 15时55分01秒