13/10/2004

Database: MySQL 轉碼小技巧

假設原本將 MySQL 的資料庫編碼設為 big5 (也就是 my.ini 或 my.cnf 中的 [mysqld] 中有一行 default-character-set = big5)。之後因為多國語言的需要(或其他原因[1]), 想要更改為其他編碼(如 UTF-8),這裡提供一個小技巧:

我想程式語言裡面,同時對資料庫及多國語系支源最好的,莫過於 Java 了。因此解決方式就是,找到一個 Java 所寫的 utility,利用 JDBC,執行資料庫的匯出/匯入,或是直接資料庫對拷。由於MySQL 的 JDBC driver 內建語系轉換的功能,因此若資料庫 A 與 B 的語系不同,當我們將一個資料由 A 拷至 B 時,語系轉換也就自然完成了。

example2_small 幾經搜尋與測試後,終於找到一個 Eclipse 的 plug-in DB Copy,雖然這個 utility 介面相當陽春,且還在 Beta 階段,但它的確解決了我的問題。

[1] 好吧,為什麼不用 default-character-set = big5 的原因還有一個,就是當我如此設定時,我發現中文檔案上傳有問題。尤其是 PowerPoint 與 Word 之類的文件,10 個檔案可能有 9 個在上傳時無法成功 update 至 MySQL。這是我在 Tomcat+JSP+MySQL 所發生的問題,別種情況會不會,我就不知了。