#PHP插入中文数据,在PHPmyadmin中显示乱码问题
HTML中使用form表单,并用post方法提交数据到PHP页面中,再在PHP文件中编写代码,将获取到的数据插入数据库,然后打开phpmyadmin看到中文数据是乱码。
解决办法
1.打开mysql控制台
2.输入mysql密码,然后输入命令,不要忘记后面的分号!我就是上一句忘记写分号,接着写下一句的时候,及时正确也会报错。
show variables like "%char%";
错误示范
3.正确输入第二步的命令后,会显示各种编码,然后用下面的命令将每一个都设置成utf8,如果已经是utf8的就不用设置了。
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_databse=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
反正我的设置历程就是这样,最后成功解决乱码问题,我也不清楚有没有必要全部设置成utf8,我也是刚学数据库,甚至我也不清楚这一步是不是必须的,因为后面还要在my.ini文件中设置字符编码,好让每次启动wampserver64时都是utf8编码格式
完成后如下图
4.打开上图中character_sets_dir显示的路径,找到一个my.ini的文件。用记事本或者Notepad++打开。
找到client,在client中添加下面这句话
default-character-set=utf8
然后找到“mysqld”,添加下面这句话
character-set-server=utf8
5.右键那个绿色的图标,点击“退出”。
6.然后再启动wampserver64。
7.在phpmyadmin中新建数据库时要像下面一样设置。
8.新建表时,如果是varchar或者text类型的字段,也要设置成“utf8_general_ci”。
9.HTML文件要添加
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10.php文件要添加
header("Content-Type:text/html;charset=utf-8");
11.然后提交表单就能在数据库中插入中文,结果没有乱码。
string mysqli_character_set_name ( mysqli $link )
是返回当前数据库连接的默认字符编码。
12.最后,我是初学者,上面的步骤是我搞了半天多,最后成功了,想记录一下,我也只是看别人的博客,然后不断尝试不同方法,可能卡在漏了分号那一步了,我裂开了…(自己给自己合上)另外一个卡住我的可能是在phpMyadmin中修改了表的字符编码,但是没有改数据库连接的默认字符编码,导致一直出现乱码,并且老师给的
mysql_query("set names gb2312");
这个代码好像也不太对?
后来header也设置了utf8但是还是不行,最后就通过命令行啊,my.ini文件啥的修改默认字符编码。
如果有错误请大家指正!谢谢!