下图,wiki截图。。。。。。。。。。。。。。。。。
我不知道题主怎么得出三位的结论的,请确保已经知道UTF-8的编码规则。
UTF-8的编码格式,前面是n个1,n表示位数,然后用0隔开,后面是10xxxxxx,也就是除了第一字节,以后每一字节的有效位数只有6bit,请确保明白我这句话。
十六进制的10FFFF 相当于二进制的1 0000 1111 1111 1111 1111,注意1后面的0相当于二进制的0000,而不是一个0,题主不会在这里算错了吧,哈哈。从后往前每6位占一个字节的开始排,最后上下的放到第一位,最终得到的是 11110100 10001111 10111111 10111111,四个字节。我用蓝色表示字节数位,用红色表示有效数位。不明白的话,回复我哦。
我擦,还有纠结这个的...
有意思吗?
这个问题我答不上来,并且我也不会花功夫去了解这个,因为他对我来说毫无意义,并不能使我能够完成开发....
编码不要懂吗???
@不被女生喜欢好多年: 学习不能太钻牛角尖,有时候放一放,回头再来看看你就什么都懂了..
先不看括号里面的补充说明, 先比较UTF-8 和 UTF-16
UTF-8 1-6字节 , 英文、数字1字节。 拉丁、西欧2字节。中日韩 3字节, "火星文" 4-6字节
UTF-16 2 或 4字节 大部分常见2字节,其他4字节。
所以UTF8保存代码之类的很好,节约空间。保存中日韩(CJK) 就有点浪费了,还不如GB2312这些本地化字符集有效率。
以后和外星人有交流了,需要6字节传一个字符,那就更浪费了,说不定星际流量费很贵。所以2003年就规定了,U+0000到U+10FFFF这个范围的字符采用UTF-8.
所以这里的10FFF着重点是描述的是Unicode范围。
最后一句”也就是说最多四个字节“,你就理解为不超过四字节吧,(3本来就小于4)。毕竟对于字节长度来说,大家习惯于“取整”2字节,4字节,8字节。