昨天要幫老婆大人把客戶從MySQL dump出來的資料,從原先的Big5轉成UTF8再塞進去MySQL裡。原始檔案有將近900M,有點大所以大部份的編輯軟體都拿他沒輒,所以就開到Linux裡用iconv直接轉,轉是轉完了但是總會有"\?"的問題造成匯入不成功,去問了一下G大這有可能是換行字元的問題,為了快速找到解決方案就先把問題的研究先放著,解決問題優先。
[Navicat]是一套資料庫管理工具支援多種資料庫,可下載試用。它本身提供Data Transfer的功能可以直接讓線上的資料庫轉到另一個資料庫或輸出成檔案。轉換細節如下:
環境:Server: VMwarePlayer3.1.5 + Debian6.0.3 + MySQL 5.1.49
Client: WinXP with SP3 + Navicat10
- 在Navicat環境下,建立兩個Connections,一個Encoding設成950 (ANSI/OEM - Traditional Chinese Big5),另一個設成65001 (UTF-8)
- 點選 Tools -> Data Transfer -> General,設定Source Connection為Big5的那個,當然Target Connection就得設成UTF8的那個了,Database依需求設定
- 在Data Transfer畫面下點選Advanced,依照你的需求增減相關的選項,在本例中我將Include character set及Use hexadecimal format for BLOB取消。Include character set如果設定會把目的table也設成Source table的character設定,所以取消;至於Use hexadecimal format for BLOB則是因為我的資料庫有使用到BLOB的欄位,轉換時會造成錯誤,所以取消。
- 接著就按Start等待結果啦~
沒有留言:
張貼留言