php中mysql乱码问题


进入你的msql,查看编码设置:

 show variables like "%char%";


然后 根据需要执行:

 SET character_set_client='utf8';

 SET character_set_connection='utf8';

SET character_set_results='utf8';

set character_set_server="utf8";


再次查看,就可以看到设置成功了:


然后再检查你数据库的编码:

执行:   show create database mydb; (可以看到我数据库的编码式 latin1);


接着,设置你数据库的编码方式(注意把数据库名称改成你自己的):

执行:    ALTER DATABASE `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


接着查看你的数据库的编码方式:

执行: show create database mydb;  (可以看到已经改过来了)


接着:查看你的表格的编码方式(注意:把表名改成你自己的):

执行: show create table student;


如果表的编码方式不是utf-8,你可以执行:

ALTER table  `student`  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

最后,应该能够成功了.如果还出现乱码,可以去数据库中查看:

比如我用wampserver的phpMyAdmin,就可以去查看表的结构信息(忽略谷歌浏览器的英文翻译 -_-!! ),


最后 :   html中设置编码方式(一般自动生成):

<meta charset="UTF-8">


php中也同样:

header("Content-Type: text/html;charset=utf-8");


大部分人估计上边的设置完了,乱码就能解决了,但是,我的还是这样(php中):


于是去修改my.ini,

一开始在[mysqld]添加: default-character-set = utf8,  但是wampsever重启报错了! 于是我删掉了,然后添加:

[mysqld]下default-character-set = utf8


哈哈!乱码成功解决了!


阅读更多
版权声明: https://blog.csdn.net/LPLIFE/article/details/80346125
上一篇php的中文正则表达式
下一篇php mysql执行delete删除未存在的记录为什么会提示成功
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭