mysql插入中文时乱码问题解决

来源:互联网 发布:淘宝如何开通微淘 编辑:程序博客网 时间:2024/05/18 12:43

在使用php+mysql写博客的时候,当插入中文时出现乱码问题,找了很多博客发现内容很乱很杂,重复的很多,后来试了很多方法终于成功,我也是在前人的基础上总结是用我的方法。

首先使用show variables like ‘character%’; 来查看当前数据库的相关编码集。
这里写图片描述
当然以上这个是我改好的,也是能成功显示中文字符的。。。(我的版本是5.6.17随后说道为什么强调)那么我们先来了解一下各项的意义。

  • client 为客户端使用的字符集。
  • connection 为连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置。
  • database 为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
  • results 为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
  • server 为服务器安装时指定的默认字符集设定。
  • system 为数据库系统使用的字符集设定。

    保证每一项的编码统一就不会产生乱码,当然支持中文的话也可以改成gbk,gb2312,utf-8等,建议是utf-8。在mysql中默认字符集是latin1,他是不支持中文的,想要设置字符集为uft-8,可以在 my.ini 文件中在相应位置[client],[mysqld]写上以下代码(这也是一劳永逸的方法):

  • [client]

default-character-set=utf8
  • [mysqld]
default-character-set=utf8

后来你会发现你的wamp竟然重启失败了后来才知道

  • 在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的 [mysql] 和 [mysqld] 项中都是写:
default-character-set=utf8
  • 到了5.5版本, [mysql] 项内可以这么写, [mysqld]
    项内这么写在启动MySQL服务时会有1067错误,经查询发现这里必须要这样写:
character-set-server=utf8

重启服务后依然没有起作用。 最后,删除之前新建的数据库,再次重启mysql服务,并再次条件下重新新建一个数据库,就没出现中文乱码的问题了~