问题:从表单中提交数据到数据库中,数据库中出现乱码现象。然后是数据库中如果中文字符正常,到页面的时候则又出现乱码了
解决方法:通过百度,数据库和数据表都设置字符utf-8编码,但是还是没有解决。然后就一步一步的调试,最终发现是header("Content-type:text/html;charset=utf-8");导致的,然后把这个代码删除之后,就能正常显示了。然后如果html中又设置了字符编码,从数据库中读取的中文出现乱码,如果再把html中设置字符编码的代码删除,数据库中的数据能够正常的显示,但是页面中的中文又出现乱码了。
最后再通过百度,在http://www.jb51.net/article/30123.htm网页中找到了解决的方法时,是连接数据库的时候没有设置统一编码。就是在php连接数据库时,设置mysqli_query($link,"set names utf8"),就解决乱码的问题
set names utf8 这个语句的作用相当于将
character_set_client = utf8
character_set_connection =utf8
character_set_results=utf8
这三句的作用
character_set_client = utf8 : 告诉服务器,我这边给你的是utf8
character_set_connection : 告诉转换器 ,转换成什么编码
character_set_results : 查询结果使用什么编码
至于,你的Mysql中的变量想要设置成永久的,我建议你,你查阅,你mysql的配置文件my.ini ,
查阅 属性 default-character-set=utf8 (设置mysql客户端默认字符集)
并且查阅 属性 character-set-server=utf8(设置服务器使用的字符集为utf8) (备注:这边Mysql的配置文件默认是使用latin1,也就是说,你出现乱码的问题很有可能是这边的问题)
如果不是utf8 ,那么全部将他改为utf8,下次应该就没问题了。
如果没有以上的属性,你自己添加就行