zoukankan      html  css  js  c++  java
  • 从ord()中对Unicode编码的理解

    刚开始学习编程的时候,老对字符串编码的理解模模糊糊。也一直看这方便的资料,今天在看Dive in python时,突然有了新的理解(不知道是否正确)。

    Python有个built-in函数ord(),返回一个字符的unicode值。这个函数并没有其他参数,那就是说,给定一个字符,就会有一个特定值对应。跟具体编码(utf-8,utf-16,gb2312)无关。

    我之前错误的理解是:每套编码都有自己的对应表。

    现在看来,unicode标准囊括了世界上所有的字符,每个字符都有对应的unicode值。

    我所谓的编码,比如utf8, utf16, gb2312等等,其实只是在保存到磁盘或者通过网络传输时,序列化成二进制的方式而已,跟字符的unicode值毫无关系。

    utf-32用4字节保存一个字符,虽然浪费空间,但是从二进制解析(decode)成字符的时候,速度肯定比utf8快,因为每四个字节表示一个字符,在一个流中查找特定位置的字符肯定要快, O(1)。

    utf-8变长保存,虽然节省了空间,但是查找特定位置字符比较困难,时间效率是O(n)

  • 相关阅读:
    woj 1574
    UESTC 594 我要长高 dp单调队列
    HDU 3401 Trade dp 单调队列优化
    HDU 2844 Coins 多重背包
    2-1
    1-2
    1-1
    12-1
    9-1
    14-8
  • 原文地址:https://www.cnblogs.com/junejs/p/4413644.html
Copyright © 2011-2022 走看看