伴随着无数次重装MySql,并且花费一整天的时间后,终于使得MySql不再乱码。
我的Mysql安装时候,选择的编码为“Best”,即支持UTF-8的编码。在MySql中运行Status,也显示所有的编码为utf8。
1.如果在数据库中,使用Command line直接插入中文数据,报错,提示“data too long for columnxxx”。 根本无法插入。
2.如果使用phpmyadmin(已设为utf-8编码登陆)插入数据,在phpmyAdmin中查看是正常的中文,在网页(程序)中显示为不正常。
3.如果在网页(程序)里面运行插入语句,则在网页(程序)中可以正常查看,可是在phpMyAdmin中看到的为乱码。
0.使用不同的编码来浏览网页。
1.改变网页文件编码。
2.改变head区的设置。
3.重新设置mySql的编码。
4.更换数据库。
5.重装数据库
结果都不行。
可是在xoops系统中网页插入的数据,使用phpmyadmin也可以正常浏览。而且是同一个数据库同一个表,我自己写程式插入中文就乱码。
这样操作下来,就可以使得我的程序和phpmyadmin看到的结果是一样的了。
虽然这个问题解决了,不过因为对mysql数据库还不是很了解,依然存在疑问:
1。这两句执行后的有效范围是多大?是不是只对未来的一个查询语句有效?
mysql_query("SET CHARACTER SET utf8 ;") or die(mysql_error()); mysql_query("SET NAMES 'utf8'") or die(mysql_error());
2。为什么Mysql的Status显示为utf8,还是要手工再设置一次呢?难道是告诉mysql,我的客户端需要什么编码?是否有默认值设置?
重装MySql的时候,请一定要注意一个问题。(windows 下)
当你卸载完MySql后,它不会提示你重新启动系统;
但是你要重新启动,并且把它相关的文件夹都删除了再重装,才可以保证正确。