本文实例讲述了PHP使用strrev翻转中文乱码问题的解决方法。分享给大家供大家参考,具体如下:
在用PHP中的strrve翻转中文时,会出现乱码情况
例如:
1
2
|
header( "Content-Type: text/html; charset=utf-8" );
echo strrev ( "处理使用strrev()函数时的乱码问题" ). "<br>" ;
|
运行结果为:
1
|
��鮗遠籹䄚綗氕潇�)(verrts��翽䆐焤�
|
解决方法就是自己重写一个cnstrrev的函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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 );
|
运行结果为:
1
|
处理使用strrev()函数时的乱码问题+题问码乱的时数函)(verrts用使理处
|
希望本文所述对大家PHP程序设计有所帮助。