mb_substr($str,$start,$len,encode);你翻开手册看看吧

解决方案 »

  1.   

    mysql4.1以上,character set设gb2312或utf8,
    sql里直接写left(xxx,10)
      

  2.   

    function leftfourty($titles){
    $titles=mb_substr($titles,0,14,ISO-8859-1);
    return $titles;
    }
    这样一个函数没有作用啊?
      

  3.   

    function MySubstr($str,$start,$len)
    {
    $length=$start+$len;
    for($i=0;$i<$length;$i++)
    {
    if(ord(substr($str,$i,1))>=0x80)
    {
    $temp.=substr($str,$i,2);
    $i++;
    }
    else
    $temp.=substr($str,$i,1);
    }
    return $temp; 
    }
      

  4.   

    可以根据当前字节的ascii码来进行简单判断,若其值大于0xa0,则判断下一个字节,若该值仍然大于0xa0,就将这两个字节当作一个汉字来处理,字数计数加一即可,否则就当单字节文字处理
      

  5.   

    建议使用mbstring来做://从$info中提取10个字
    mb_substr($info, 0, 10);
    使用mbstring的话,记得windows下打开
    extension=php_mbstring.dll
    Linux下记得加载so, 之前要先安装
      

  6.   

    function msubstr($str,$start,$len)//字符位置从0开始 

    $strlen=strlen($str); 
    for($i=0;$i<$strlen;$i++) 

    if($i>=$start&&$i<($start+$len)) 

    if(ord(substr($str,$i,1))>0xa1) 
    $tmpstr.=substr($str,$i,2); 
    else 
    $tmpstr.=substr($str,$i,1); 
    }  if(ord(substr($str,$i,1))>0xa1) 
    $i++; 

    return $tmpstr; 
    }