php里面字符的长度与宽度的区别是什么阿?  看了一下,utf8中一个中文字符长度为3,宽度就是2.
    就接了好久

解决方案 »

  1.   

    UTF8是变长存储。根据每个字符的不同情况,会分配不同大小的空间。TF-8有点类似于Haffman编码,它将Unicode编码为00000000-0000007F的字符,用单个字节来表示;
    00000080-000007FF的字符用两个字节表示
    00000800-0000FFFF的字符用3字节表示
    因为目前为止Unicode-16规范没有指定FFFF以上的字符,所以UTF-8最多是使用3个字节来表示一个字符。但理论上来说,UTF-8最多需要用6字节表示一个字符。
    在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理。
      

  2.   

    应该类似sizeof()和strlen()的区别吧,一个是实际占内存,一个是长度