![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() ![]() |
|
主題工具 | 顯示模式 |
![]() |
#1 |
長老會員
![]() ![]() |
![]() 我記得之前安裝的時候是用BIG5碼作為基礎,
但是後來的程式都是UTF8, 造成後來的程式顯示都是亂碼, 我想請問可以將資料庫改成UTF8嗎? 那原本BIG5的資料會變亂碼嗎? 是否有其他方法可修改? 我是有查到一篇用手動改法, 只是我不清楚怕毀了資料...... (我已經毀掉過兩次了 ![]() |
![]() |
送花文章: 26735,
![]() |
![]() |
#4 (permalink) |
協調管理員
![]() |
![]() 在資料庫內的資料表要存成utf8_bin
還有在做網頁時,你的存檔文件也要是utf-8,像 這樣FrontPage會自動存成utf-8的格式 如果是記事本,也要手動改變成utf-8的編碼 在程式內,要讀取mysql裡的utf8編碼文字,加上這三行會比較好 PHP 語法:
|
![]() |
送花文章: 11706,
![]() |
向 飛鳥 送花的會員:
|
![]() |
#5 (permalink) | |
長老會員
![]() |
![]() 引用:
1. 可以改成 UTF-8 2. 有些字的前面會自動被加上 \,所以你要自己手動去改那些字,eg.許、功、蓋等 3. phpbb2 本身要改編碼 4. MySQL 本身也要改編碼 5. 以上有個環節出錯,你的資料庫就毀了,請先做好備份 == 接下來開始教你實戰過程XD 1. 請先把資料庫使用 mysqldump,以 latin1 格式備份出來(資料庫預設都是使用 latin1) mysqldump --all-databases --default-character-set=latin1 -u root -p > mysql.sql 注意,這一步沒做,你轉換一定失敗。 2.把資料表的編碼修正為 UTF8 找出下列幾行,並將所有的 latin1 改為 utf8 s/SET NAMES utf8 s/ENGINE=MyISAM DEFAULT CHARSET=utf8 s/ENGINE=InnoDB DEFAULT CHARSET=utf8 s/ENGINE=MEMORY DEFAULT CHARSET=utf8 3.實際進行轉換(big5 -> utf8) iconv -c -f big5 -t utf8 mysql.sql > mysql_utf8.sql 4.修改 MySQL 啟動參數 [client] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci init-connect='SET NAMES utf8' 5. 執行 show variables like 'character\_set\_%';觀察結果是否為下表所列。 +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | +--------------------------+--------+ 6. mysql -u root < mysql_utf8.sql 恭喜你,資料庫轉換完畢 ^^a == 還有不懂的地方可以參考這本,寫得很棒,目前啃過的MySQL書就這本最優 ![]() 什麼都要懂、什麼都要會 您好,我是萬能小叮噹XD |
|
__________________ 思考,正是從一個錯誤,跳進另外一個錯誤。 |
||
![]() |
送花文章: 5387,
![]() |
向 Chin-Wei 送花的會員:
|
![]() |
#6 (permalink) | ||
長老會員
![]() ![]() |
![]() 引用:
引用:
因為忘了說我系統是WIN2K的,使用APPSERV 2.4.5 上面這些指令看起來像linux.... 這樣我會不會被痛扁阿 ![]() |
||
![]() |
送花文章: 26735,
![]() |
![]() |
#7 (permalink) | ||||
長老會員
![]() |
![]() 引用:
但是 phpbb2 本身的編碼設定記得要改 引用:
引用:
引用:
== 最後,真的不行的話,直接把 DB 丟過來,我幫你轉比較快 前一陣子才剛把 latin1 資料庫整個升級成 UTF8,目前戰意高昂中XD |
||||
![]() |
送花文章: 5387,
![]() |
向 Chin-Wei 送花的會員:
|
![]() |
#9 (permalink) | ||
長老會員
![]() |
![]() 引用:
我試過了,語法完全一樣 ^^a 1.備份請不要使用 phpbb,請使用 MySQL 提供的備份工具:mysqldump 2.請勿使用 binary copy(就是直接複製),MySQL 的 Storage Engine 不一定可以 portable,請使用 引用:
|
||
![]() |
送花文章: 5387,
![]() |
向 Chin-Wei 送花的會員:
|