做web难免会遇到乱码,可最近迁移完服务器后,用户post上来的数据有人出现的是乱码(几率很小)。
squid -> apache ->php->mysql
apache 中页面编码的设置为utf8
真是奇怪了,mysql
mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
mysql> show variables like 'character\_set\_%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
apache 的页面是设置的utf8
实在是头疼不知道问题出现在哪里,不过有传输的地方就有编码的不一直,只有先在每一段设置下监控,看乱码最先是在哪里产生的!
初步猜测应该是在squid->apache这里由于网络问题产生的:)
先在这里记录下,前端稍微也做下调整。
update(2008-06-09):可能是别人写得发帖机器人post过来数据的编码存在一些问题。
update(2008-11-26):问题已经彻底解决,原因是之前有个和电信互联星空的一个合作项目,他们的页面编码是gb2312的,服务器是以前的老web服务器(域名不一样),由于我们迁移后,数据库的编码做了统一,而从合作项目post过来的数据作为gb2312过来的,所以插入数据库的时候数据乱码了!把post过来的数据做了下处理就好了:)
