本文实例讲述了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程序设计有所帮助。