夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> 人工智能【AI】
php查询mysql中文乱码的解决办法
夜鹰教程网 来源:www.yyjcw.com 日期:2016-11-20 22:17:54
关于使用php和mysql出现中文乱码的问题,网上有诸多的讨论。相信能够解决大部分的问题。

关于使用php和mysql出现中文乱码的问题,网上有诸多的讨论。相信能够解决大部分的问题。

我遇到的情况有点特殊:
网站已经在运行,有一定的数据量,原来的文件和程序编码都是用的GBK,数据库用的utf-8,现在要把文件和程序的编码都转换成utf-8.

首先我把所有的文件编码和程序编码都转换成了utf-8,这个过程中没出现什么问题。
然后运行的时候,发现查询出来的数据都成了乱码,整了大半天也没解决。

网页上不是通过数据查询出来的汉字都能正确的显示,所以一定是查询数据的问题。

看到有人说mysql数据的Insert和Select使用的编码是不一样的,而我的程序对这一方面没有做过处理。
试着添加了一条新的纪录,发现查询出来是正常的编码。
偶想原来的文件都是GBK的,提交的数据是不是也存储成了GBK,看phpmyadmin中也都都是乱码。
按照这个思路,我写了个小程序,把含有中文的字段中的字符都转成utf-8,问题解决了,而且在phpmyadmin中看到的也是中文了。

现在把代码贴出来,分享一下:

  1. <?php
  2. //连接数据库
  3. $link = mysql_connect('localhost', 'xxxx', 'xxxx');
  4.  
  5. if (!$link) {
  6. die('数据库连接失败.' . mysql_error());
  7. }
  8. mysql_select_db("xxxx");
  9.  
  10. $sql="select * from table";
  11. $result = mysql_query($sql) or die('数据库查询失败.'.mysql_error());
  12.  
  13. $oldresult=array();
  14.  
  15. $i=0;
  16.  
  17. while($tmp=mysql_fetch_array($result)){
  18. $oldresult[$i][0]=$tmp["id"];
  19. $oldresult[$i][1]=$tmp["title"];
  20. $oldresult[$i][2]=$tmp["content"];
  21. $oldresult[$i][3]=$tmp["tags"];
  22. $i+=1;
  23. }
  24.  
  25. foreach ($oldresult as $tmprs) {
  26. $id=$tmprs[0];
  27. $title=iconv("GBK","UTF-8",$tmprs[1]);
  28. $content=iconv("GBK","UTF-8",$tmprs[2]);
  29. $tags=iconv("GBK","UTF-8",$tmprs[3]);
  30.  
  31. mysql_query('set character_set_client = utf8');
  32. mysql_query('set character_set_connection = utf8');
  33. mysql_query('set character_set_results = utf8');
  34.  
  35. $sql="update table set title='".$title."',content='".$content."',tags='".$tags."' where id=".$id;
  36.  
  37. mysql_query($sql);
  38. }
  39. ?>
复制链接 网友评论 收藏本文 关闭此页
上一条: php生成静态页面的办法  下一条: 总结下php程序效率优化
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
PHP---构造函数
php查询mysql中文乱码的解决办法
PHP打印函数集合
PHP中如何保持SESSION以及由此引发…
PHP判断远程文件是否存在
PHPWind7.5 SP2版本新功能抢先看
PHP通过SQL语句将数据写入MySQL数…
php中计算时间差的方法
在PHP中截取HTML代码串问题
PHP教程:strtotime函数实现时间戳…
优化php的性能效率
用php 发送html格式文本
PHP正则表达式提取超链接和标题
iconv函数使用方法---php
配置PHP站点
  最近更新
什么是线性回归
什么是逻辑回归
AI训练模型的过程
如何使用TensorFlow构建和训练自己…
基于Python的未戴口罩识别demo的代…
MVC中怎么实现对于网站的权限管理…
自定义AuthorizeAttribute
“缺少 mysqli 扩展“的解决办法 …
如何用php连接mysql实例详解
PHPWind7.5 SP2版本新功能抢先看
PHP中如何保持SESSION以及由此引发…
php 使用GD库为页面增加水印
用php 发送html格式文本
优化php的性能效率
解决PHP乱码问题的三种办法

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3