中文乱码问题产生的原因,主要就是字符编码设置问题;
     
      首先,mysql数据库安装的时候字符编码要选择正确,最好选择utf-8比较保险。如果安装时没有设置正确,找到mysql的安装目录,修改my.conf配置文件中的字符设置,打开文件,应该一个是在mysqll下面,一个是在server下面的。
 
      如果是php页面的中文乱码,也就是非数据库查询出来的数据,HTML页面静态的部分出现乱码,应该使用header("content-type:text/html; charset=utf8") 来设定页面编码。
 
   可能用到的命令:
 
     1>数据库导出的命令:mysql -u root -p 数据库名 > d:\sql.sql
     2>数据库导入命令:source D:\sql.sql
     3>mysql查询字符集设定的命令:show variables like '%set%';
     4>mysql设定字符集:set name utf8
 
     【注意】mysql导出的数据库不要用记事本打开,因为微软的记事本编码使用的是utf-8不是withoutBOM,会出问题。
 
     如果数数据库查出来的值显示乱码,确定数据是否为从其他版本的数据库导出又导入你自己的数据库的。因为mysql数据库服务器的版本不同,直接导入数据就有可能出现问题。例如我的mysql数据库的数据在本地运行中文完全没有问题,但是当移植到新浪SAE上面的时候,因为跟他的mysql服务器版本不同,使用phpmyadmin导入sql数据,虽然在导入的时候已经选好的字符集为utf-8, phpmyadmin中查看中文也完全没有问题,但是在打开页面的时候,所有从数据库中查处的数据中,全部都是诸如问号的乱码。
 
      网上的解决办法是在执行每条sql语句之前使用mysql_query("set name utf8");但是加入这句话却报错,最后原因是在mysql5.0之后,mysql的函数基本都废弃了,而是使用它的扩展函数mysqli,mysqli_query($link,'utf8');进行设置,这样中文乱码的问题就解决了。
 
        期间还有一个问题就是,如果不用上传到服务器的数据,而是自己再通过网页重新添加一些中文信息,也是可以正常显示的,而如果直接在数据库中使用insert与语句插入中文的数据,还是不能正常显示。具体问题不详    目前估计还是因为数据库版本不同造成的。
 
     总的解决办法就是:数据库编码设置正确,页面编码设置正确,在php数据插入数据库的时候进行严谨的处理,对于可能出现的问题,严格处理。 

php中文乱码问题分析及解决办法的更多相关文章

  1. 记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法

    原文:记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法 转载请注明出处:http://www.cnblogs.com/Ray1024 一.问题描述 在MFC中使用Dir ...

  2. mysql保存中文乱码的原因和解决办法

    当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心.    也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类 ...

  3. plsql中文乱码显示问号的解决办法

    问题现象:  PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号????. 解决办法: 1. 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出: ...

  4. php substr中文乱码最有效到解决办法 转:http://blog.sina.com.cn/s/blog_49b531af0100esah.html

    (2009-07-29 12:29:38) 转载▼ 标签: php substr文乱码 网站开发 it   直接使用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一 ...

  5. 使用myeclipse出现中文乱码的情况以及解决办法

    一:在jsp页面使用中文在浏览器中显示的时候出现乱码,解决问题的办法: 1)直接在<mete>标签中修改charset属性为"utf-8"或者为"gb2312 ...

  6. 关于使用Ajax请求json数据,@RequestMapping返回中文乱码的几种解决办法

    一.问题描述: 使用ajax请求json数据的时候,无论如何返回的响应编码都是ISO-8859-1类型,因为统一都是utf-8编码,导致出现返回结果中文乱码情况. $.ajax({ type:&quo ...

  7. NetBeans 打开项目中文乱码最简单的解决办法

    网上各种修改配置文件,中文乱码还是没有解决,其实不是NetBeans的问题,是编辑器设置的字符集不支持中文,最简单的办法:!!! 设置新字体即可 !!!

  8. android studio中文乱码各种情况的解决办法

    情况一:编辑器内的中文注释乱码. 解决办法:在界面的右下角找到 UTF-8 ,单击之,在弹出的列表中选中GBK 在弹出框内选中Reload 总结:导致这样的原因是你这个.java文件本身是GBK编码的 ...

  9. 关于Android与pc通信时中文乱码的分析和解决

    初步实现了Android与pc服务器的通信之后,又碰到了传说中令人头疼不已的中文乱码问题.既然出现了乱码,那么原因自然是协议不通了.我们知道eclipse中默认的编码标准是GBK,而安卓程序开发所默认 ...

随机推荐

  1. php笔记(五)PHP类和对象之对象的高级特性

    对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断. class Car { } $a = ...

  2. 微信小程序文档解读(一)--api提供支持有哪些

    本文重点在于小程序API提供的微信功能支持及获取用户信息的解读,具体的用法和调用不在本文讨论范围之内,文章基于20161222版文档解读 API官方文档原文链接 小程序API官方定义: 框架提供丰富的 ...

  3. Oracle使用虚拟表dual一次插入多条记录

    从一个CSV文件中读取所有的数据,并且插入到一个Oracle数据库中,并且几分钟内完成,大约有60万条.网上有人说了,你可以循环insert然后插入几千条以后Commit一次,我靠,你自己试试看!!如 ...

  4. 转:apache 的mod-status

    最近发现在apache的监控方面,apache 2开始自带的apache mod-status其实是个不错的工具,下面摘录并笔记之: 如果是linux的话,可以这样设置: 在httpd.conf中添加 ...

  5. Struts2第二天

    Struts2第二天 昨天: 1.Action的编写方式:实现Action接口.继承ActionSupport.自定义pojo作为action 2.action调用方法:默认的execute.meth ...

  6. NYIST OJ 题目20 吝啬的王国

    DFS水题.题意说明了这是一颗树,那么只要按照根节点DFS下去就好了,DFS的时候记录一下当前在哪个结点,还有父节点是谁,就AC了! #include<cstdio> #include&l ...

  7. html5权威指南:表单元素

    一.表单标签: 表单标签:http://blog.csdn.net/mylovestart/article/details/8589002 html5新增表单元素: 1.datalist:http:/ ...

  8. Save Update saveOrUpdate delete

    参考:Hibernate Session的saveOrUpdate()方法 saveOrUpdate与Update的作用 Hibernate Delete query Hibernate Basics ...

  9. Effective JavaScript :第六章

    1.将undefined看成没有值 产生undefined的情况: ①未赋值的变量的初始值为undefined. var x ; X ; //undefined ②访问对象中不存在的属性也会产生und ...

  10. ggplot2 geom设置—散点图

    散点图也是目前R中的常用的图形之一 geom_point(mapping = NULL, data = NULL, stat = "identity", position = &q ...