在计算机中,全部信息最终都能以二进制字符串来表示。二进制位又叫作比特(bit),每一个比特有0和1两种状态,8个比特构成了1个字节(byte),1个字节能够表示256种状态。html
ASCII码一共规定了128个字符的编码,这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后7位,最前面的1位统一为0。编码
Unicode是一个容纳了上百万字符的字符集,规定了每一个字符的二进制代码。可是没有制定具体的存储规则,例如当用3个字节存储一个字符时,它同时能够被理解为存储了3个ASCII码,另外咱们都知道ASCII码是用1个字节存储,当规定用3个字节存储字符时,就形成了空间的极大浪费。
Unicode同时也兼容了ASCII码。code
UTF-8是实现了Unicode的方式之一,特色是变长编码,它使用1-4个字节表示一个符号。htm
编码规则:blog
总结为下表,x表示字符utf-8
Unicode符号范围 | UTF-8编码方式 (十六进制) | (二进制) --------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
例:
“严”字的Unicode编码为100111000100101,用十六进制表示为U+4E25,处在上表的第三行。换成UTF-8则须要3个字节,二进制代码为11100100 10111000 10100101,转换成十六进制为E4B8A5。ci
参考:http://www.ruanyifeng.com/blo...unicode