最近在练习用php和MySql写网站,在存储数据的过程中,HTML表单中输入的中文字符通过php存入数据库后显示为乱码,在百度上搜了搜,各种解释,着实担心,不过还是看到一些有用的信息,就是不管中文英文还是其他字符,都要设置编码格式为utf8。
1.在HTML代码中添加这样一句话:
,这个是用来定义网页的编码的。在连接数据库,选择具体的数据库之后,使用(“set names utf8”);来设置数据库编码,与HTML编码保持一致。这里使用的是Zend开发环境,开发环境也有它的代码显示编码,所以也必须改成utf8格式。还有一个就是在创建数据库表的时候也是非常关键的。比如在数据库中,创建表的时候:还必须设置里面字段的编码。多说就没意义了,直接看图1:在中下位置设置为utf8--ci编码即可。
图 1
图 2
2、如果在创建表时忘记设置该属性,不用担心,有办法。首先选中要修改属性的表,点击修改其属性,勾选此项,然后确认,如图2所示。为了进一步保证不出现乱码,还可以给表中部分字段或者全部字段添加utf8--ci。具体操作:点击需要修改的表()->->勾选全部->,然后分别设置各个字段即可。如图3所示。
图 3
注意:如果不选择整张表都采用utf8--ci编码,而只是将表中部分字段设置为utf8--ci格式,那么通过查看表属性仍然会看到整张表的编码为gbk--ci。如果Html编码为utf8,仍然会出现乱码,所以关键是要将整张表设置为utf8--ci。如图4、图5所示,虽然图4看上去是utf8--ci编码,但是整张表的编码还是gbk格式,编码不一致,所以很有可能表格仍然会出现乱码。
好吧,长话短说,总结一下四点:
1、如果在Zend中编写PHP或者HTML代码,首先将创建的项目的显示编码格式设置为UTF8格式;
2、使用网页显示的编码格式以HTML编写;
3.连接数据库时,选择数据库(不是表)后使用(“set names utf8”);
4、如上所说,在创建数据库的时候,设置整个表的编码格式为utf8--ci。
图 4
图 5
扫一扫在手机端查看
-
Tags : 如何解决php连接数据库乱码问题
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。