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語句操作了
.....
?>