有没有中文 
  
   我这里有一个 截取 utf-8编码的中文例子 
/**   
   * 截取UTF-8编码下字符串的函数 
   *   
   * @param   string      $str        被截取的字符串   
   * @param   int         $length     截取的长度   
   * @param   bool        $append     是否附加省略号  
   *   
   * @return  string   
   */     function CutStr($str,$start, $length = 0, $append = false)   
   {    
     $str = trim($str);   
     $strlength = strlen($str);   
     if ($length == 0 || $length >= $strlength) {    
         return $str;    
     } elseif ($length < 0) {    
         $length = $strlength + $length;    
         if ($length < 0) {    
             $length = $strlength;    
         }    
     }   
  
     if (function_exists('iconv_substr')) {     
         $newstr = iconv_substr($str, 0, $length, 'UTF-8');    
     }elseif (function_exists('mb_substr')) {    
         $newstr = mb_substr($str, 0, $length, 'UTF-8');    
     }else {    
         $newstr = trim_right(substr($str, 0, $length));    
     }   
  
     if ($append && $str != $newstr) {    
         $newstr .= '...';   
     }   
  
     return $newstr;     
  }  

解决方案 »

  1.   

    我这个是gbk的,都是中文。  怎么办呢?
      

  2.   


    <?php$dbh = @mysql_connect("localhost","root","pw");
    if(!$dbh){die("error");}
    @mysql_select_db("db", $dbh);
    @mysql_query("set names 'gbk'");
    $q = "SELECT * FROM cdb_threads where fid=20 order by dateline desc limit 7";
    $rs = mysql_query($q, $dbh);
    /*-------------------------*/
    mb_internal_encoding("gb2312");
    $string = $row[subject];
    $mystring = mb_substr($string,1,5);
    echo $mystring;
    /*----------------------*/
    while($row = mysql_fetch_array($rs))
    echo "<li><span> [$row[author]] </span><a href=http://bbs.----.com/viewthread.php?tid=$row[tid] target='_blank' title='$row[subject] $row[lastposter]最后回复'>$mystring</a></li>";
    ?>请问我这里的mb_substr($string,1,5); 函数是哪里错了呀。  这样返回的是空的, $mystring 变量什么都没有<?php
    mb_internal_encoding("gb2312");
    $string = "我来测试一下,测试一下!";
    $mystring = mb_substr($string,1,5);
    echo $mystring;
    ?>而这样就可以返回正确的截取。   
    请问各位大侠。  错误在哪里呀?