沉舟侧畔千帆过,病树前头万木春
字符编码的过程
2019-04-12 / 1 min read

最近在看《Java核心技术-卷1-基础知识》,对于java使用的Utf-16编码有诸多疑惑,其中一点就来自于对字符编码过程的缺乏了解。计算机系统里面的字符编码大约涉及下面几个流程:

字符编码过程
通过这张图,可以比较容易了解到unicode和utf-8的关系,两者处于不同的概念层次上面,前者是形成CCS过程:将字符集里的字符映射成为一个整数, 这个整数又被成为Code Point。而后者则是将前面映射的整数映射成有限长度的比特值(CEF)的过程, 每个最小单元成为一个Code Unit。
值得一提的是CEF是逐渐演化出来的概念,早期的ASCII编码可以理解为既包含CCS过程也包含CEF过程。从解决问题的角度,这是“增加一层抽象”解决问题的一个案例。
详细了解可以参考:Insight Python-字符编码