汉字编码乱码问题(PDO,MYSQLI) php问题来源以及解决方法

汉字编码乱码问题(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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值