PHP:参数互传乱码问题
如果一个站用的是gbk的编码,一个站呢用的是utf8的编码,这二个站之间要相互通信,当然这个时候都知道彼此的编码就很好解决。如果不知道呢?
查看复制打印?
1.<?php
2.function exchange_code ( &$param, $in_code,$out_code)
3.{
4. if (is_array($param)){
5. foreach ($param as $key=>$val) {
6. $param[$key] = mb_convert_encoding($val,$out_code,$in_code);
7. }
8. }else{
9. $param = mb_convert_encoding($param,$out_code,$in_code);
10. }
11.}
12.
13.$param = $_REQUEST['param'];
14.$code = mb_detect_encoding($param); //在这里我传是一个字符串,数组就不能这么用了
15.call_user_func('exchange_code', &$param,$code,'gbk');
16.?>
<?php
function exchange_code ( &$param, $in_code,$out_code)
{
if (is_array($param)){
foreach ($param as $key=>$val) {
$param[$key] = mb_convert_encoding($val,$out_code,$in_code);
}
}else{
$param = mb_convert_encoding($param,$out_code,$in_code);
}
}
$param = $_REQUEST['param'];
$code = mb_detect_encoding($param); //在这里我传是一个字符串,数组就不能这么用了
call_user_func('exchange_code', &$param,$code,'gbk');
?>传过来的参数,用mb_detect_encoding来侦测一下它的字符集是什么,要变成什么样的字符集,转一下就行了。不过要注意,文件本身保存的字符编码是什么,以及页面输出的编码是什么等,要统一。