When using strrve in PHP to flip Chinese, garbled characters will appear
For example:
header("Content-Type: text/html; charset=utf-8"); echo strrev("处理使用strrev()函数时的乱码问题")."<br>";
The running result is:
��鮗元籹The solution is to rewrite a cnstrrev function yourself
header("Content-Type: text/html; charset=utf-8"); $str = '处理使用strrev()函数时的乱码问题'; function cnstrrev($str) { $len = strlen($str); for($i = 0; $i < $len; $i++) { $char = $str{0}; if(ord($char) > 127) //ord()函数取得第一个字符的ASCII码,如果大于0xa0(127)的话则是中文字符 { $i+=2;//utf-8编码的情况下,一个中文字符占三个字节 if($i < $len) { $arr[] = substr($str, 0, 3);//utf-8编码的情况下,一个中文字符占三个字节 $str = substr($str, 3); } } else { $arr[] = $char; $str = substr($str, 1);//否则为非中文,占一个字符 } } return join(array_reverse($arr));//以相反的元素顺序返回数组: } echo $str.'+'.cnstrrev($str);
The above is the detailed content of Solve the problem of flipping Chinese garbled characters in strrev function in PHP. For more information, please follow other related articles on the PHP Chinese website!