您的位置:首页 > 数据库 > MySQL

关于mysql数据库存储中文乱码的问题

2012-12-07 00:00 316 查看
前提 :
1数据库和表都是utf8_general_ci格式
2程序代码也是utf-8格式,且使用了mysql_query("set names utf-8"); 及
htmlentities ENT_QUOTES,'utf-8'

结果:
即使是这样 插入数据库汉字仍然在数据库中看到的是乱码,但是页面上显示的好的。

原因及解决方法:
原因可能是mysql在安装的时候的设置不对。
解决方法,你无法改变供应商重新安装mysql的话,只能接受这样的事实。就让它乱码吧,
需要导出数据的话可以自己手写代码用csv或者xls导出。

实际上后来发现以下解决方案,

phpmyadmin里MySQL字符集:cp1252 West European (latin1) ,解决乱码问题
使用虚拟主机空间上的phpmyadmin操作数据库的时候,如果看到phpmyadmin首页上显示的MySQL 字符集为cp1252 West European (latin1),当我们导入数据时就会出现乱码,解决的方法是:

在phpmyadmin首页的右边有个Language选项,把默认的中文 - Chinese simplified-gb2312改成 中文 - Chinese simplified,则左边的MySQL 字符集会变成UTF-8 Unicode (utf8) ,乱码问题得到解决!

如果数据库编码没有问题,则
确保所有页面都是 utf-8 无BOM
另外在调用页面 mysql_query 前也 写入 mysql_query("set names utf8")
就可以保证无乱码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 乱码