前提 : 1数据库和表都是utf8_general_ci格式 2程序代码也是utf-8格式,且使用了mysql_query("set names utf-8"); 及 htmlentities ENT_QUOTES,'utf-8'php
结果: 即便是这样 插入数据库汉字仍然在数据库中看到的是乱码,可是页面上显示的好的。html
缘由及解决方法: 缘由多是mysql在安装的时候的设置不对。 解决方法,你没法改变供应商从新安装mysql的话,只能接受这样的事实。就让它乱码吧, 须要导出数据的话能够本身手写代码用csv或者xls导出。mysql
实际上后来发现如下解决方案,sql
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") 就能够保证无乱码code