前言
默认bigEndian
。
实现
依次读char的ascii值。 这个值显然在 [0,2^8-1] 范围内。
判断几个档位。如图。
- 注意到图中,
<224
的时候,保留6位,我标注的是000x xxxx
实际上只有5个x
。这是因为<224,前3位必定都是0,所以确实只有5个有效数字。 |
是按位取或操作。

else做完|
按位或操作后,
还要继续处理:
暂略
看的出utf8编码里的字符是变长的。
所以utf8编码是对位置敏感的。
从哪里开始读字符很重要。
作为对比,ascii编码就是位置不敏感的,从哪个字节开始读都可以。