51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4500|回复: 1
打印 上一主题 下一主题

[Python语言及其应用] 使用UTF-8编码和解码

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2018-1-1 21:08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    对字符串进行处理时,并不需要在意 Python 中 Unicode 字符的存储细节。
    但当需要与外界进行数据交互时则需要完成两件事情:
    • 将字符串编码为字节;
    • 将字节解码为字符串。
    如果Unicode包含的字符种类不超过64000种,我们就可以将字符ID统一存储在2字节中。遗憾的是, Unicode 所包含的字符种类远不止于此。诚然,我们可以将字符 ID 统一编码在3或4字节中,但这会使空间开销(内存和硬盘)增加3到4倍。
    两位为 Unix 开发者所熟知的大神 Ken Thompson 和 Rob Pike 在新泽西共用晚餐时解决了这个问题,他们在餐桌垫上设计出了 UTF-8 动态编码方案。这种方案会动态地为每一个Unicode 字符分配1到4字节不等:  

    • 为 ASCII 字符分配 1 字节;
    • 为拉丁语系(除西里尔语)的语言分配 2 字节;
    • 为其他的位于基本多语言平面的字符分配 3 字节;
    • 为剩下的字符集分配 4 字节,这包括一些亚洲语言及符号。
    UTF-8 是 Python、 Linux 以及 HTML 的标准文本编码格式。这种编码方式简单快速、字符覆盖面广、出错率低。在代码中全都使用 UTF-8 编码会是一种非常棒的体验,你再也不需要不停地转化各种编码格式。

    回复

    使用道具 举报

     成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    沙发
     楼主| 发表于 2018-1-1 22:30:18 | 只看该作者
    一些关于utf-u有用的链接:
    • Unicode HOWTO(https://docs.python.org/3/howto/unicode.html
    • Pragmatic Unicode(http://nedbatchelder.com/text/unipain.html
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 09:48 , Processed in 0.069869 second(s), 31 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表