日期:2014-05-17  浏览次数:20422 次

为什么本地测试正常 上传后就会出现插入数据库乱码
php+sql 前后台都用的utf8 本地一切正常 上传后读取也正常 但是通过页面插入到数据库的中文全都是问号 怎么回事

每个页面都设置了
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
每次连接数据库后都设置了
$dbh->exec("SET CHARACTER SET utf8");
mysql数据库表和每个字段的编码都是utf8_generate_ci
本地一切正常 上传到服务器插入的汉字全是问号 
谁帮帮我啊 都快哭了

------解决方案--------------------
mssql? 嗯 方向对了 编码问题. 不过mysql 是 set names 'utf8',mssql 我就不清楚了。应该是这句语句不正常吧
------解决方案--------------------
探讨

引用:
mssql? 嗯 方向对了 编码问题. 不过mysql 是 set names 'utf8',mssql 我就不清楚了。应该是这句语句不正常吧
是mysql exec("SET CHARACTER SET utf8");这种方法是正确的 我设了set names 'utf8'也还是没用 我真快哭了

------解决方案--------------------
看看从本地数据库导出的编码格式是不是都是UTF-8,如果是的话看导出后的中文内容是不是问号,然后导入到服务器那边的数据库的编码是不是都是UTF-8.应该是格式不一致的原因,再有楼上说的应该是mysql吧,语句应该是mysql_query("SET NAMES 'utf-8'");
------解决方案--------------------
PHP页面加上试试:
header('Content-Type:text/html;charset=utf-8');
------解决方案--------------------
还是牛哥慧眼,我前面写错了,是utf8!你在phpadmin的首页看看 MySQL 连接校对是不是utf8_generate_ci
还有就是Language是不是中文-Chinese simplified,如果都没问题的话就点导出,然后再看文件的字符集是不是utf8,如果是的话,你就点下面的执行,这样数据就可以导出来了,然后导入的话也是要看清楚这3项是否跟你导出的时候一致,这样就应该可以了