unicode是什么:是一个字符集:character set是各个国家各自开发不同的字符集编码之后(比如中国最早是GB2312),国际标准化组织internationalStandardization organization(ISO)为了统一地球上所有的语言字符到一个字符集编码中去。设计了UCS,可以理解为universal character set,再简化一点可以当它是universal code,即unicode为了统一,并且表示很多的字符。规定所有都必须用两个字节表示。8位的也需要扩展为16位。(所以对于英文符号来说,高8位永远都是0)、这英文文本就不干了,这样不就浪费了一倍的空间来保存文本吗?16位需要两个8位来存储。这就衍生出了一个概念。“字符”一个字符是两个字节。由上我们看出,unicode有两个问题:1、空间浪费2、无法确定几个字节表示一个字符。接下来先讲一下unicode在互联网出现后,由传输方式的不同衍生出的不同版本UTF。UTF(UCS Transfer Format)定义了一次传输几位数据,UTF-8就是每次8个位传输,而UTF-16就是每次16个。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以用1~4个字节来表示,通过某些规则我们可以看出每个字符用了多少个字节。具体的规则可以直接读图最后简洁概括:Unicode is charset。UTF-8 is encoding。