终于把unicode编码做了一个大致的了解了。
在学习的过程中知道了很多概念和相关的发展历史,对以前比较模糊的概念也有了比较深入的了解。
一些概念:
- bom(byte order mark)用来区别是big endian(BE)还是little endian(LE)。
区别的方法: 在UTF-16文件的头2个字节里做个标记: LE [0xFF, 0xFE], BE [0xFE, 0xFF]; 而在UTF-8中,标记[0xEF, 0xBB, 0xBF],可有可无的 - Unicode的理解
- UCS(universal character set)通用字符集
- UTF-16
- UTF-8
- BMP(Basic Multilingual Plane),在表达一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在BPM里的所有字符,要用四位十六进制数,在BMP以外的需要使用五位或六位十六进制数。
看完总结出来的简单的思维导图。
每一个点上都有细节可以研究,例如utf-8,utf-16等都有各自的算法,各自的实现方式。
参考:
http://tech.idv2.com/2008/02/21/unicode-intro/