解决PHP+mysql处理中文乱码的独家方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解决PHP+mysql处理中文乱码的独家方案
本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。
问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。
一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。
同样将数据库中的所有表的字符编码设置成UTF-8。
这样,数据库中可以正常显示中文字符了,如下图所示。
如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。
----------------------------------------
二、数据库的字符编码完成后,便要将页面文件的编码设置好。
这里的要点有如下三点(红色为说明文字):
为了实现上述三点要求,本例采用的方案如下:
1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示:
2.设置页面文件的文件类型。可以在页面文件中的
标签中设置字符编码。
2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示:
2.2将
标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:3.在页面的首行引入数据链接文件conn.php,可以保证conn.php中的header 设置字符编码成功有效,否则中文仍会出现乱码,如下图所示:
最后,就完成了字符编码的设置,看看成功后的页面吧(如下图),中文全部正常显示出来了,是不是很神奇,赶快动动手来实现吧!
Ps:另外提一句,如果你想让页面的字符编码设为其他类型(如GBK),则可以按上述方案将所有的编码类型设置为GBK即可。