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
新聞熱點
疑難解答