UTF8编码
最近项目中经常用到UTF8编码以及BASE64操作。
于是有兴趣看看UFT8编码到底怎么回事。UTF8是Ken Thompson 和 Rob pike 两位大神完成的。
具体的实际上有一个表就可以弄明白了:
0XXXXXXX
110XXXXX 10XXXXXX
1110XXXX 10XXXXXX 10XXXXXX
11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
UTF8编码1-4byte长度表示所有的Unicode。表格中的数字,表示固定的占位符,X表示真实的值。
那么可以表达的长度分别为:
1byte 2^7 -1
2byte 2^11 -1
3byte 2^16 -1
4byte 2^21 -1
表示方式不复杂,有时间看看.NET/mono的具体实现。