您的位置:首页 > 编程语言 > PHP开发

PHP代码中文输出乱码和转码问题

2016-07-07 20:00 776 查看
1.header('Content-Type:text/html;charset=utf-8'); ////防止json格式的中文乱码输出,在输出之前写出此代码行

2.字符转码:$a为待转码字符串,$encode为 $a的编码规则,$to_encode 为$a 将要转的编码规则,$str_encode 转码后的字符串,

               (一): $encode = mb_detect_encoding($a, array("ASCII", 'UTF-8', "GB2312", "GBK", 'BIG5'));//获取当前字符串的编码

                                 $str_encode = mb_convert_encoding($a, $to_encode, $encode);//将字符编码改为$to_encode

               (二):$str_encode = iconv($encode, $to_encode, $a);//例:$A = iconv("gbk", "utf-8", $A);

               (三):/**

 * 1.自动识别编码并转换为UTF-8

 */

function characet($data){

  if( !empty($data) ){   

    $fileType = mb_detect_encoding($data , array('UTF-8','GBK','LATIN1','BIG5')) ;  

    if( $fileType != 'UTF-8'){  

      $data = mb_convert_encoding($data ,'utf-8' , $fileType);  

    }  

  }  

  return $data;   

}

3.自己写了一个小得处理PHP代码http调试时输出汉字的代码:

//防止中文转码,遍历数据结果,每项单独urlencode,

    public function arrayUrlencode($array) {

        if (empty($array)) {

            return $array;

        } else {

            foreach ($array as $key =>$value) {//对每个数组元素进行urlencode

                if (is_array($value)) {

                    $array[$key] =$this->arrayUrlencode($value);

                } else {

                    $array[$key] =urlencode($value);

                }

            }

        }

        return $array;

    }

 

    //再整体urldecode

    public function arrayJsonencode($array) {

        $url_arr =$this->arrayUrlencode($array);

        $json_arr = json_encode($url_arr);//json 输出

        return urldecode($json_arr); //整体urldecode

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 乱码 utf-8 json