最近一直在编写网页,利用的是php和Mysql,但各种出现问题,显示在Mysql下输入sql语句时,若sql语句中出现中文有可能会导致sql语句不能执行,解决方案见:解决Mysql server 5.1无法识别中文
解决完这个问题,利用php将数据写入数据库时,又出现了sql语句无法执行的情况。这个问题也被我解决,解决方案见:解决PHP连接上了Mysql但却无法插入数据到数据库中。
而昨天出现的中文乱码的问题,搞了一晚上终于完整解决,现在php和Mysql都能识别中文,能够正常执行sql语句。
解决方案在这里写个总结(应该可以同时解决以上三个问题):
首先是修改Mysql 的编码方式,这里有个帖子写的非常的详细。结合我第一问题的解决方案就能完全修改好Mysql的编码方式,帖子的地址:MySql修改数据库编码为UTF8。
接下来是php连接数据库的时候选择的编码方式,首先我建议大家把所以的编码方式全部改成’utf-8’这样无论是编写网页还是用数据库都会方便许多,php编写网页时加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
即可,然后在用sql语句访问数据库的时候呢,加上mysql_query("set names utf8");
记住这里是utf8不是utf-8,并不是我不小心忘记加上横线,而是就是utf8。