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