phpmyadmin乱码问题

首先,如果你出现乱码,你一定baidu了文章,对于各种答案,肯定是头都大了,说的都差不多,却都不一样烦啊。 

问题叙述:

 1,从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的 

2,直接从数据库插入数据,但是输出到网页后是乱码 3,从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。 对于乱码问题就这三种了吧!!

 今天我亲自试验了一下,下面公布我的结果(我用的是UTF-8,其他同理,UTF-8特别注意) 总述,乱码,原因,编码不一致,为什么?

答曰:提交数据库的数据需要编码,数据库存储需要编码,从数据库提取的数据还需要编码。这三种编码需要一致! 

 首先,你要保证所有输出输入网页都有编码声明 <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 或者 header("Content-Type: text/html; charset=utf-8"); header("Content-Type: text/html; charset=utf-8"); 注意!!这里是utf-8,不是utf8 其次,相应数据的编码整理应该为utf8_general_ci。

 1、从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的,说明提交的数据和数据库的编码不一样,提取数据的编码和提交数据的编码一样 A->B->A型 这你就懂了吧,A是提交和提取数据的编码,B是数据库存储用的编码。

 修改方法: 如果你不是新手的话,数据库连接文件应该是单独的吧比如execut_dql()(供查询用)或者execut_dml()(供修改用),所有的语句应该都是通过这两个函数进行的所以在这两个函数里的第一行,先写上mysql_query("SET NAMES 'utf8'"); 注意!!是utf8,不是utf-8 例如下面的(在mysql_query()你的SQL语句之前,全部 SET NAME 'utf8'一下) mysql_query("SET NAMES 'utf8'"); $res=mysql_query($sql,$this->conn) ordie(mysql_error()); mysql_query("SET NAMES 'utf8'"); $res=mysql_query($sql,$this->conn) or die(mysql_error()); 其实,你把所以关于数据库查询、插入的语句前全部mysql_query("SET NAMES 'utf8'");后,乱码问题就已经解决了,不过你以前插入的数据要重新插入了。 

2、直接从数据库插入数据,但是输出到网页后是乱码。B->A型 这个不用再说了吧,你把查询语句前先 mysql_query("SET NAMES 'utf8'"); //你的查询 之后刷新下就不是乱码了。 

3、从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。A->A->B型 同上,你把查询语句前先 mysql_query("SET NAMES 'utf8'"); 之后刷新下就不是乱码了。 所以总结出,只要保证操作过程中,输入,存储,输出的字符编码一致,你想让他乱码都难

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值