首页 毕业设计案例 企业案例 项目设计文档 服务解答 毕业设计下载 留言板
重要通告:最近发现有人冒充我们星海工作室行骗,已经有个别同学上当受骗,我们在此特别
提醒同学们,我们工作室的官方客服QQ分别是:359374739,178807165 其他号码一概是骗子

位置: 首页>> 项目设计文档>> MySQL字符集产生乱码的简单讲解

        本站推荐:买毕业设计 先移动充值 优惠多多

MySQL字符集产生乱码的简单讲解

  
 


           MySQL字符集产生乱码的简单讲解

           发布者: rain   发布日期:2008/9/11    浏览次数:1449 次
 
>

为什么中文字却能不加转换的插入到数据库中?
又为什么中文字能不加转换的从数据库中得到正确数据?

带着这两个问题我又打开命令提示符。执行查询操作,结果显示的全是乱码(当时我想的是:文字应该为GBK编码)。于是我又执行:set names gbk; 把这个数据库字符集改为GBK字符集。再执行查询结果显示的全部是问号。这到底是怎么回事,我真的不想再研究了。

        我一气之下把my.ini文件的[mysql]栏的default-character-set 注释掉了。重启MySQL后,又执行了一下操作,结果真是大出意料呀,居然正常显示了。我兴奋的不的了。结果我又查询了一下当前mysql的字符集:呵呵 居然是latin1。难道是这里在做怪?然后我用PHP插入数据,查询数据库(不执行 mysql_query(“set names gbk”)),结果照样显示正常。哈哈,问题终于找到了,原来真是这里在做怪!!!

我想看到这里大家已经应该明白了,下面我做一个小总结吧。

《最》《后》《总》《结》(只是个人见解,不负任何法律责任哦!)

(1)        在mysql5.0.45环境下,数据库把由PHP传递的数据默认为latin1 (ISO-8859-1) 字符集来处理。即把latin1转换为UTF-8,然后插入。
(2)        当PHP向MySQL数据库中插入数据前执行(mysql_query(“set names gbk”))MySQL才会以PHP查询中指定的字符集(gbk)转换为UTF-8后插入。
(3)        CMD模式下操作MySQL,和用PHP操作在字符集处理上是两种概念。CMD下操作MySQL,MySQL会把CMD下的数据默认为MySQL默认的字符集转换为UTF-8后处理。而处理PHP数据MySQL会默认为 latin1 数据做处理。

 

《《《----我最后的配置----》》》:

因 为我只是在本地作测试,为了测试时少写一行mysql_query(“set names gbk”)。所以我把 my.ini 的 [ mysql ] 栏default-characte_set 改为 latin1。这样无论自己在本地测试或是CMD下操作MySQL都很方便。但是如果你用的是PHPMyAdmin的话,可能会显示乱码,解决办法就是安 装一个支持字符集为 latin1的PHPMyAdmin。字符集和字符集校对都为 latin1 ,就能正常显示了。

        《关》《于》《数》《据》《库》《备》《份》

        因为mysql4.1之前采用的中文字符集为 gbk 或 gb2312。建议备份和恢复数据库前先执行 set name gbk ;命令即可解决乱码问题。

常见问题 | 我要留言 | 添加到收藏
  [1]  [2]
推荐毕业设计案例
 
毕业指导文档
 
工作室简介 | 联系我们 | 购买流程
© 2008 XingHai Studio All Rights Reserved 浙ICP备11037994号-7
  业务咨询
在线客服
在线客服
☆付款需知
☆购买流程
☆订单下载