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

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

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

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

  
 


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

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

 MySQL自4.1版本推出之后为我们国人带来的乱码问题也随之风弥整个互联网。主要原因就是不同字符集编码不同而产生的。
       
        先说一下MySQl的配置中都有哪几种字符集:

MySQL 4.1的字符集支持(Character Set Support)有两个方面字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

我们可以用下面命令检查MySQL当前字符集信息:

show variables like “character_set_%”;
show variables like “collation_%”;

        MySQL4.1或以上版本的系统预设的编码是UTF-8,而我们的中文编码为:GBK,GB2312,BIG5……所以当我们把中文被当做别的字符集转 化为UTF-8的字符集,再存入数据库时就会出现部分文字代码丢失而产生乱码。这就是我们查询数据库得到这些数据显示到网页上的就是“????”或乱码的 原因。

        解决办法吗?当然也很简单,网页上随便一搜就能搜到。

解决办法(1)就是在插入数据之前先设置一下MySQL的字符集,即:mysql_query(“set names gbk”) 或是将gbk改为gb2312 或是别的中文字符集。然后再执行插入操作。

《特》《别》《声》《明》

        上面的办法在我电脑上测试成功。

但我多少感觉有些不舒服,每次查询前都要写mysql_query(‘set name gbk’);。这一点我挺不满意的。于是我又开始搜索,结果我找到了下面将要讲到的配置方法

        解决办法(2):配置my.ini文件。打开my.ini 找到 [mysql] 找到default-character-set 如果你的mysql是默认安装的话这里应该是:utf8。这时将它改为:gbk或是gb2312就行了。(  即不在查询前加入mysql_query (“set names gbk”)  )

《又》《出》《问》《题》《了》

        我照上面的方法改了不知多少次,从gbk改到gb2312又改到utf8始终没能成功。我想了想,既然网页传值不能成功那么在命提示符下是什么样子的呢。
       
        于是我用命令提示符打开了MySQL。测试发现在命令提示符下操作MySQL一切正常。弄到这里我的头都大了。
       
        我又重新配置了一下PHP环境,下载的最新AppServ 2.5.9。检查一下MySQL字符集,默认字符集是UTF8。

MySQL命令:(show variables like “character_set_%”;)
       
        然后我在不执行(mysql_query(“set names gbk”))时向数据库执行插入,查询操作,在网页上一切都显示正常。呵呵,真是怪了!

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