MySQL 4.0是以big5編碼,許多big5沒有的字就難以呈現,雖然在4.1之後版本有支援utf8編碼,但是如何將4.0資料庫內以big5編碼的資料正確轉到最新版MySQL 5.1以utf8編碼,就得花些功夫。

1.備份資料庫:

C:\mysql\bin>mysqldump -u root -pYourPassword --default-character-set=latin1 --add-drop-table YourDbName > db_latin1.sql

 

2.轉換編碼:

(1).首先,你必需先準備EmEditor,然後用它開啟你4.0的db_latin1.sql

(2).在最前面加入以下三行。

SET NAMES utf8;

SET CHARACTER_SET_CLIENT=utf8;

SET CHARACTER_SET_RESULTS=utf8;

為了確保新的MySQL5.1資料庫資料表為utf8編碼,必須變更原來db_latin1.sql內容中CREATE TABLE的編碼字串,

以編輯器搜尋取代方式找「);改成「) ENGINE=MyISAM DEFAULT CHARSET=utf8;

為了解決big5中的「許功蓋餐…」等字元在T-SQL插入字元的欄位後方,造成欄位對應不正確,必須統一取代:

  • 將文字內容「?,'以「','取代
  • 將文字內容\',以「',取代

(3).選另存新檔->類型不用改,編碼選utf8,加入BOM那邊不要勾選,換行方式選 僅有 LF(UNIX)->存檔newdb.sql

(或者使用convertzbig5編碼檔,轉成utf8編碼格式)

 

3.設定MySQL確認資料庫編碼為utf8

修改my.ini,在client區段加入default-character-set=utf8,如下

[client]

default-character-set=utf8 

[mysql]

default-character-set = utf8

 

4.倒回資料:

(1). 新增資料庫

mysql> create database newdb

    -> \g

mysql> use newdb (確認新資料庫建立無誤)

(2). 執行mysql匯入資料

C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -u root –p YourPassword newdb < d:\mysql\newdb.sql

光子 發表在 痞客邦 PIXNET 留言(0) 人氣()