MySQL 4的数据库,如果要迁移到MYSQL 4.1去,是会有中文编码问题的,有关的文章介绍太 多了,GOOGLE一下就很多,关键是mysql 4.1开始支持多编码了。今天尝试一下迁移和插入读取等问题,发现一些规律和问题,总结如下 我机器是win2000 server,装了mysql 4,mysql 4.1 和mysql 5,用的是phpmyadmin 2.70 pl2. 首先,我用phpmyadmin 将mysql 4的一个表导出另存为abc.sql文件了。 之后,我先恢复到mysql 5中去,同样用phpmyadmin,输入http://localhost/phpmyadmin5/index.php(我在机器上 配置了三个phpmyadmin,都是同一版本,只不过分别连接mysql 4,mysql 4.1,mysql 5而已),注意在导入 功能时,选择编码为GB2312(这步很重要!),之后成功导入数据表里, 观察一下,注意此时该数据表的每一列的“整理”一项都是gb2312_chinese_ci, 而phpmyadmin设置的首页 里,mysql字符集合是uft-8,连接校对也是uft-8,同时,在my.ini中,设置 [mysqld] character_set_server = utf8 [mysql] default-character-set =utf8 这时,可以看到数据库用phpmyadmin看,不存在中文乱码问题了。
接下来,我们在PHP程序中,就可以正常象以前写CRUD程序那样,对数据库进行读取,增加等操作,是没有中文编码问题的哦
再接下来,我们用同样的方法,将数据表恢复到MYSQL 4.1数据库中去,注意,也是在导入时 选编码为GB2312,但发现PHPMYADMIN有一个出错,但不用理会,发现表还是导进去了 同样也是没中文问题,但注意,在用PHP程序处理时,必须象这样处理,否则有乱码问题 <? header("content-type:text/html; charset=uft-8"); mysql_query("SET NAMES utf8;");
接下来是正常的MYSQL语句操作了
..... ?>
出处:jackyrong BLOG
|