汉字编码乱码问题(PDO,MYSQLI) php问题来源以及解决方法
1.meta设置
前端界面中的信息属性中的meta未设置为charset=‘utf-8’.
在head里面加上就好了。
2.数据库中操作
1.数据库属性设置如下,如果设置成其他字符集与排序规则可能会产生汉字乱码。
2.数据表属性设置如下
与数据库属性设置大体类似,不过此处是在新建表的时候设计的,如果需要更改的话需要右键设计表来更改。
3.出错概率比较大的地方。
因为此处错误比较奇怪,所有的编码格式设置都是正确的。
但是因为当数据库传输过程中的一些默认值的编码未改成utf8格式,所以会造成出错
出错原因详见,我只提供解决方法:链接: link.
解决方法:
1.如果使用mysqli类数据库连接
此条数据为连接到数据库,实例化mysqli类,并将其值赋给db的变量
然后调用这个对象的query方法,通过此语句将所有默认值都改成utf8即可。
2.如果使用pdo类连接
关于代码的具体作用,就是连接到数据库,这个时候就用pdo的对象调用它的query方法,设置names为utf8即可。
综上所述,一共有四种可能导致乱码,而且会产生前端页面乱码和数据库中的汉字乱码两种情况,本文主要提供了解决方法,至于各种编码的主要作用与为何要设置utf8而不是其他,就需要大家自行去了解。
也欢迎加我的qq共同探讨有关php的问题:826797165