找回密碼
 註冊
搜索
查看: 5370|回復: 0

phpBB2 MySQL資料庫 UTF-8 化

[複製鏈接]
發表於 2006-9-6 15:58:58 | 顯示全部樓層 |閱讀模式
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
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|彩色筆小沛的知識庫

GMT+8, 2024-5-3 15:14 , Processed in 0.016074 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表