关于#PHP乱码#的问题,如何解决?

PHP输出变量乱码,正常输出汉字却不会乱码,花了几个小时在网上找方法,全部都试了没有用,求解答

img

img

img

img

img

img

看了一下,你用的是UTF-8 编码,因此有以下点位检测是否是UTF-8编码:
1、数据库的字符编码;
show variables like '%char%'; 看一下是不是都是utf8
2、数据库的连接字符编码;
php 连接mysql 设置:set names utf8
3、程序代码文件的字符编码;
代码编辑器查看
4、网页输出显示的字符编码;

另外,sql查询结果直接先打印一下,先别做任何处理。如:echo $row['cn_name']

是读取数据库出现的乱码吧
在连接数据库时,加上以下代码:

....
$db->set_charset("utf8");

如果是PDO连接用以下代码:

$db->query("set names utf8");

完整PDO示例:

try {
       $db=new \PDO($config['PDO_DSN'],$config['PDO_USER'],$config['PDO_PASS']);
       $db->query("set names utf8");
    }catch(Exception $e){
      echo$e->getMessage();
      exit();
    }
    $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE,\PDO::FETCH_ASSOC);

另外检查文档是否是UTF-8保存,编码是否加上UTF-8

img

img