JDP 發表於 2006-9-6 15:58:58

phpBB2 MySQL資料庫 UTF-8 化

phpBB2 UTF-8 化 by cclien.net

今天一時興起,玩起 UTF-8 的 Terminal 環境,搭配 screen 還頗好用,要用 big5 還是 utf-8 都可以切換‧玩到最後,一不做二不休,跟 denir 大大討論了一下,決定把豬公村也給 UTF-8 化...
新版的 phpBB2 已經有 UTF-8 的介面了,這個是沒啥問題 (雖然說我到最後還是沒抓到最新的語系檔,拿原本 big5 的轉了過去用)‧最大的問題出在原本 mysql 的資料庫是以 big5 去儲存的,這個比較慘‧
剛開始用了最白癡的方法: 用 mysqldump 把資料 dump 出來,用 iconv 轉完再塞回去,結果當然是失敗‧因為 big5 被 mysqldump 丟出來時,許功蓋會被轉換成許\功\蓋\,SQL query 就會變成這樣: insert into table values ('許\功\蓋\'); 聰明的你一定看的出來,這個 query 一定會死在 \' 那邊‧所以此招可以填海‧
吃完宵夜之後,回家再戰‧這次用的方法如下,這個就可行了,所以筆記一下給大家:
假設我們要轉換的 table 是 phpbb_posts_text
1.把 table 內容用 select into file 的方式丟出來: select * from phpbb_posts_text into outfile '/tmp/phpbb_posts_text'
2.進行轉碼: iconv -c -f big-5 -t utf-8 /tmp/phpbb_posts_text > /tmp/phpbb_posts_text.utf8
3.把原本 table 的東西清光準備塞新資料: delete from phpbb_posts_text where 1;
4.將 utf-8 的新內容丟回去: load data infile '/tmp/phpbb_posts_text.utf8' into table phpbb_posts_text;
然後每個含有 big5 資料的 table 都要做一次,所以聰明的小孩一定會用 script 來完成的 :)

Reference: http://cclien.net/archives/000163.html
頁: [1]
查看完整版本: phpBB2 MySQL資料庫 UTF-8 化