直接上代碼
//通過ord()函數獲取字符的ASCII碼值,如果返回值大於 127則表示為中文字符的一半,再獲取后一半組合成一個完整字符 $string = "hello不要迷戀哥world"; $string=iconv('utf-8', 'gbk', $string);////由於ord函數在gbk下單個中文長度為2,utf-8下長度為3 $length = strlen($string); var_dump($string);//原始中文 var_dump($length);//長度 //把字符串轉化為ascii碼存入數組,如果是中文是由兩個ASCII碼組成,英文是一個 $result = array(); for($i=0;$i<$length;$i++){ if(ord($string[$i])>127){ $result[] = ord($string[$i]).' '.ord($string[++$i]); }else{ $result[] = ord($string[$i]); } } var_dump($result); $str = ''; foreach($result as $v){ if(empty(strstr($v,' '))){ $str .= chr($v); }else{ list($a,$b) = explode(' ',$v); $str .= chr($a).chr($b); } } echo $str;