MySQL数据库“局部”乱码

问题:“网页显示中午”与“数据库查看中文”总有一个是乱码,或者“网页中总有部分中文乱码”

装了PHPStudy之后,用alter修改过一次数据库的编码方式为utf8!当时的网页的编码显示是正常的,所以我就没有放在心上以为可以了!到后来才发现:网页显示中文的时候不是乱码的,但是在数据库查看中文的时候却是乱码的!还有更奇怪的是,我做一个电商网站的时候,发现一级菜单的中文显示“夏日服装”--“夏日”显示正常,“服装”乱码!实际上这个只是显示乱码,因为我用命令修改了它的显示编码方式之后,数据显示正常了,但是网页又不正常了;不修改,网页还是可以正常显示中文的!这个就令我头疼了现在问题解决了,总结一下记录,若有不准确,还请指教,谢谢!

解决:

  1)思路:发生乱码的情况可能由以下几个情况引起:

    (1)编辑文件保存时的编码方式与打开时的编码方式不一致--打开文件显示编码,但是我觉得应该是不影响文件运行的;

    (2)文件显示设置的编码方式与创建数据库时候数编码方式不同--文件运行之后显示乱码或者数据库乱码

    (3)文件显示设置和数据库设置的编码有部分不同--可能出现上述我出现的情况

 【面对第一种情况:用原来的编辑器重新保存一次为utf8;第二种情况:用alter命令修改数据的编码方式,或者将数据库删了重新导入】

  2)原理:

  在MySQL数据库中默认的编码是Latin1,是不支持中文的,要支持中文就需要将数据库的默认编码方式修改为utf8或者gbk。

  先查看一下数据库的编码方式情况:show variables like 'character%';显示如下【这个显示是我已经修改为utf8】:

  

  或者使用:show variables like 'collation%';查看数据库编码

  

  只要保证上面三个connection、database、server三个的编码方式一样就不会乱码了!

  3)解决方法:

  打开MySQL的配置文件:mysql.ini,修改两个地方:

  default-character-set=xxx--修改数据库默认字符集编码方式,但是却并不包括数据库服务器编码方式【即不含:collation_server】

  character-set-server=xxx--修改数据库服务器的编码方式

  只需要将两者修改为一样的utf8或者gbk就可以了!【对于不同字符,utf8和gbk所占用的储存空间是不一样的,详情可谷歌】

  

  对于数据库字符集编码方式的一些命令,大家可以看看博主“血色残阳专栏”的这篇文章,里面都有讲到!

  友情链接:http://blog.csdn.net/wangjun_pfc/article/details/3827631http://blog.csdn.net/wangjun_pfc/article/details/3827631

 

posted @ 2015-07-18 10:44  L_M_S  阅读(1909)  评论(0编辑  收藏  举报