mysql数据库中文乱码 PHP读取MySQL显示中文乱码

文章浏览阅读2.4k次。在写PHP 的WEB应用时,我们最长碰见的问题可能就是中文乱码问题了,前一段时间我在搭建自己博客的过程中,很不幸的也遇到了这个问题

在写PHP 的WEB应用时,我们最长碰见的问题可能就是中文乱码问题了,前一段时间我在搭建自己博客的过程中,很不幸的也遇到了这个问题.

问题情景描述

当时我遇到的问题是这样的:

本地测试:

页面现实正常,MySQL数据中存储的中文是乱码.

服务器端测试:

页面显示出现乱码,数据库中存储的中文也是乱码.

注意:服务器端的数据是通过SQL文件导入的,当我尝试在服务器端执行写博客操作输入文章数据并提交后,页面显示的新添加的文章依然显示乱码

乱码原因分析:

web应用之所以会出现乱码问题,根本原因是各部分文件编码不一致造成的,像PHP对中文的编码方式,HTML对中文的编码方式,MySQL表的编码方式.这三种文件的不一致才是乱码问题的罪魁祸首.

乱码解决方法:

既然我们知道了这个问题,那么我们就让PHP,HTML,MySQL的编码方式保持一致.

我是按一下步骤来的:

在创建数据库和表的时候我已经选择了UTF-8的编码方式,但是数据表中的排列规则默认是latin1_swedish_ci,我把它调整为:utf8_general_ci.这样保证了MySQL数据库编码方式是utf-8.在所有HTML代码的里面设置编码方式为utf-8.实现 代码为:

这样保证了HTML文件的编码方式为utf-8.对于PHP文件,首先在每一个PHP文件的第一行添加header(“content-Type: text/html; charset=utf-8”);代码,以保证数据在通过HTTP传输时的编码为utf-8。然后是最关键的步骤: 在每一个执行数据库查询的PHP代码处设定MySQL数据与PHP的交互方式为utf-8实现代码为://设置读取数据库的数据编码格式

mysql_query(“set character set 'utf8'”);//读库

mysql_query(“set names 'utf8'”);//写库 后面测试中,这两行代码保证了输入数据库中的数据是正常的。

这三步完成后,在本地测试中的乱码问题就解决了。

然后我们将代码push到服务器端,然后删除服务器端原本的表,重新导出本地数据库,导入到服务器端数据库,这样就成功了。

下面是我的正常显示的博客地址:

博客地址:茂升快跑

原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/558.html

(0)
筱凯筱凯
上一篇 2024 年 7 月 12 日
下一篇 2024 年 7 月 12 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,500M大带宽限量抢购  >>点击进入