日期:2014-05-16  浏览次数:20342 次

php不同系统下数据库操作乱码
    最近写php项目,一直是在win xp环境下开发的。
?
今天部署到远程空间(unix的freebsd),ftp完成以后。使用后台编辑功能就会出现乱码问题。
?
因为本地环境都是自己搭建的,所以哪里有问题都可以解决;远程不是很清楚,系统配置也不开放,但租用平台是对所有人开放的,所以也就排除这种问题机器配置错误。
?
测试发现,只有在和数据库操作才有乱码,其他正常。
?
确定位置就好处理,查询mysql文档
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
<span style="font-family: verdana, arial, helvetica, sans-serif; font-size: 14px; color: #555555; line-height: 14px;"></span>
?statement is equivalent to these three statements:
set character_set_client = <em class="replaceable" style="font-size: 13px; vertical-align: baseline; background-color: transparent; font-style: italic; font-weight: bold; padding: 0px; margin: 0px;"><code style="font-size: 12px; vertical-align: baseline; background-color: #cccccc; color: #026789; font-weight: normal; font-family: 'courier new', courier, fixed, monospace; padding: 1px; margin: 0px;">x</code></em>;set character_set_results = <em class="replaceable" style="font-size: 13px; vertical-align: baseline; background-color: transparent; font-style: italic; font-weight: bold; padding: 0px; margin: 0px;"><code style="font-size: 12px; vertical-align: baseline; background-color: #cccccc; color: #026789; font-weight: normal; font-family: 'courier new', courier, fixed, monospace; padding: 1px; margin: 0px;">x</code></em>;set character_set_connection = <em class="replaceable" style="font-size: 13px; vertical-align: baseline; background-color: transparent; font-style: italic; font-weight: bold; padding: 0px; margin: 0px;"><code style="font-size: 12px; vertical-align: baseline; background-color: #cccccc; color: #026789; font-weight: normal; font-family: 'courier new', courier, fixed, monospace; padding: 1px; margin: 0px;">x</code></em>;
?
?
方案:在php操作db前字符集设置:@mysql_query("set names utf8");
(因为用ez_sql,在ez_sql_mysql.sql 192行添加)
?
远程环境编辑ok,但是本地环境加这句就出现乱码。还不清楚具体是有哪些什么原因引起的?但有个不同点:操作系统字符集。
?
?