mysql中文出现乱码现象

问题:从表单中提交数据到数据库中,数据库中出现乱码现象。然后是数据库中如果中文字符正常,到页面的时候则又出现乱码了

解决方法:通过百度,数据库和数据表都设置字符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,下次应该就没问题了。
如果没有以上的属性,你自己添加就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值