不同的编码会有不同的字符数
gb,gbk,汉字两个字节,其他一个字节
utf-8,汉字2-4字节,字节长度不一!所以,对于多字字符,统计长度可用mbstring函数库mb_strlen或者,看在数据库端能否进行

解决方案 »

  1.   

    可以使用mb_strlen进行检测,如果你使用utf-8编码的话,就要添加后面的参数
    mb_strlen($str, "utf-8"); //1汉字为1字符
    mb_strlen($str, "gb2312"); //系统会认为1汉字为2字符
    mb_strlen($str); //如果没有添加,系统会认为1汉字为3字符
      

  2.   

    很麻烦。不过可以用一个函数,将字符一个个去统计,如果字符在汉字范围内就算两个字,否则就算一个字。可以用UNICODE码来判断。
      

  3.   

    mb_strlen函数把1个多字节字符算1个。
      

  4.   

    同样的汉字 utf8的字符长度是gb2312的两倍