中文乱码问题产生的原因,主要就是字符编码设置问题;
     
      首先,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. vim的配置文件参数

    环境:kali linux vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc set nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限&qu ...

  2. Codeforces Round #346 (Div. 2) B Qualifying Contest

    B. Qualifying Contest 题目链接http://codeforces.com/contest/659/problem/B Description Very soon Berland ...

  3. github 上传文件

    1.删除项目 2.  包管理器初始化  npm  init name  必填项   后面可一直回车 最后选择yes 3.建立本地仓储 在git bash 中输入命令  git  init 4. 添加 ...

  4. 【c++】size_t 和 size_type的区别

    为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsigned 1. size_t是全局定义的类型:size_type是STL类中定义的类型属 ...

  5. 数据库还原失败System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份

    结尾日志的问题 还原选择中去掉结尾日志就可以了 转载自:http://blog.csdn.net/aojiancc2/article/details/46316451

  6. Android原生Cling演化的覆盖层

    package com.example.demotest; import android.content.Context; import android.graphics.Paint; import ...

  7. bigdecimal使用

    float和double类型 一般用于科学计算,用于金融的都用bigdecimal类型.在项目中浮点型数据没有指定 默认是double类型.bigdecimal的构造参数有浮点型和String类型.但 ...

  8. java复习 --集合类

    List接口:可以存放重复内容: set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分: Queue:队列: SortedSet接口:对集合中的数据进行排序:   Li ...

  9. hdu 1531 King

    首先吐槽一下这个题目的题意描述,我看了半天才明白. 下标全部都是乱标的!!!!出题者能不能规范一点下标的写法!!!! 差分约束系统 #include<cstdio> #include< ...

  10. cloudeye的实现

    难点在于DNS server的搭建,然而非常简单,安装dnslib就有DNS server:zoneresolver.py,稍作修改即可使用   # -*- coding: utf-8 -*- fro ...