史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 論壇程式討論區
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-01-23, 02:41 PM   #1
ppp0600
長老會員
 
ppp0600 的頭像
榮譽勳章
UID - 19602
在線等級: 級別:72 | 在線時長:5491小時 | 升級還需:130小時級別:72 | 在線時長:5491小時 | 升級還需:130小時
註冊日期: 2002-12-30
住址: 混亂地獄
文章: 10253
精華: 0
現金: 229 金幣
資產: 214383135 金幣
預設 疑問 - MYSQL編碼?

我記得之前安裝的時候是用BIG5碼作為基礎,
但是後來的程式都是UTF8,
造成後來的程式顯示都是亂碼,
我想請問可以將資料庫改成UTF8嗎?
那原本BIG5的資料會變亂碼嗎?
是否有其他方法可修改?
我是有查到一篇用手動改法,
只是我不清楚怕毀了資料......
(我已經毀掉過兩次了
ppp0600 目前離線  
送花文章: 26714, 收花文章: 7678 篇, 收花: 38372 次
回覆時引用此帖
舊 2007-01-23, 03:23 PM   #2 (permalink)
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設

你的程式是用?

我試過php,如果要用utf-8的話要加入三行程式
__________________
http://flybird017.googlepages.com/quok.gif http://flybird020.googlepages.com/new321.gif
寶貝你我的地球
, 請 少開電器,減少溫室氣體排放外,多種植植物,減少列印, 多用背面,丟棄時做垃圾分類。

http://netgames123.googlepages.com/tobikeways.jpg

飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖
舊 2007-01-23, 07:01 PM   #3 (permalink)
長老會員
 
ppp0600 的頭像
榮譽勳章
UID - 19602
在線等級: 級別:72 | 在線時長:5491小時 | 升級還需:130小時級別:72 | 在線時長:5491小時 | 升級還需:130小時
註冊日期: 2002-12-30
住址: 混亂地獄
文章: 10253
精華: 0
現金: 229 金幣
資產: 214383135 金幣
預設

引用:
作者: 飛鳥
你的程式是用?

我試過php,如果要用utf-8的話要加入三行程式
我是用phpbb2
ppp0600 目前離線  
送花文章: 26714, 收花文章: 7678 篇, 收花: 38372 次
回覆時引用此帖
舊 2007-01-24, 09:34 AM   #4 (permalink)
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設

在資料庫內的資料表要存成utf8_bin

還有在做網頁時,你的存檔文件也要是utf-8,像

http://netgames123.googlepages.com/utf_8FP.JPG
這樣FrontPage會自動存成utf-8的格式

如果是記事本,也要手動改變成utf-8的編碼

http://netgames123.googlepages.com/utf_8F01.JPG

http://netgames123.googlepages.com/utf_8F02.JPG


在程式內,要讀取mysql裡的utf8編碼文字,加上這三行會比較好
PHP 語法:
mysql_query("SET NAMES 'utf8'");//要從資料庫顯示utf-8資料要加三行--第一行
mysql_query("SET CHARACTER_SET_CLIENT=utf8");//第二行
mysql_query("SET CHARACTER_SET_RESULTS=utf8");//第三行 
飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖
向 飛鳥 送花的會員:
ppp0600 (2007-01-24)
感謝您發表一篇好文章
舊 2007-01-24, 09:51 AM   #5 (permalink)
長老會員
 
Chin-Wei 的頭像
榮譽勳章
UID - 114112
在線等級: 級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時
註冊日期: 2007-02-18
文章: 3448
精華: 0
現金: 1674 金幣
資產: 32804 金幣
預設

引用:
作者: ppp0600
我記得之前安裝的時候是用BIG5碼作為基礎,
但是後來的程式都是UTF8,
造成後來的程式顯示都是亂碼,
我想請問可以將資料庫改成UTF8嗎?
那原本BIG5的資料會變亂碼嗎?
是否有其他方法可修改?
我是有查到一篇用手動改法,
只是我不清楚怕毀了資料......
(我已經毀掉過兩次了

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書就這本最優
http://ec2.images-amazon.com/images/P/0672326736.01._BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_SCLZZZZZZZ_V38088228_.jpg





什麼都要懂、什麼都要會
您好,我是萬能小叮噹XD
__________________
思考,正是從一個錯誤,跳進另外一個錯誤。
Chin-Wei 目前離線  
送花文章: 5387, 收花文章: 1361 篇, 收花: 5457 次
回覆時引用此帖
向 Chin-Wei 送花的會員:
ppp0600 (2007-01-24)
感謝您發表一篇好文章
舊 2007-01-24, 11:59 AM   #6 (permalink)
長老會員
 
ppp0600 的頭像
榮譽勳章
UID - 19602
在線等級: 級別:72 | 在線時長:5491小時 | 升級還需:130小時級別:72 | 在線時長:5491小時 | 升級還需:130小時
註冊日期: 2002-12-30
住址: 混亂地獄
文章: 10253
精華: 0
現金: 229 金幣
資產: 214383135 金幣
預設

引用:
作者: 飛鳥
在程式內,要讀取mysql裡的utf8編碼文字,加上這三行會比較好
PHP 語法:
mysql_query("SET NAMES 'utf8'");//要從資料庫顯示utf-8資料要加三行--第一行
mysql_query("SET CHARACTER_SET_CLIENT=utf8");//第二行
mysql_query("SET CHARACTER_SET_RESULTS=utf8");//第三行 
請問這段程式有限定要加在哪裡嗎?

引用:
作者: Chin-Wei
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.修改 M...
這感覺有點難啃,我會試試看,對了,我知道我很耍寶,
因為忘了說我系統是WIN2K的,使用APPSERV 2.4.5
上面這些指令看起來像linux....
這樣我會不會被痛扁阿
ppp0600 目前離線  
送花文章: 26714, 收花文章: 7678 篇, 收花: 38372 次
回覆時引用此帖
舊 2007-01-24, 02:24 PM   #7 (permalink)
長老會員
 
Chin-Wei 的頭像
榮譽勳章
UID - 114112
在線等級: 級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時
註冊日期: 2007-02-18
文章: 3448
精華: 0
現金: 1674 金幣
資產: 32804 金幣
預設

引用:
作者: ppp0600
請問這段程式有限定要加在哪裡嗎?
那三行可以不用加,直接加在 Server 端就行了
但是 phpbb2 本身的編碼設定記得要改



引用:
作者: ppp0600
這感覺有點難啃,我會試試看,對了,我知道我很耍寶,
因為忘了說我系統是WIN2K的,使用APPSERV 2.4.5
上面這些指令看起來像linux....
這樣我會不會被痛扁阿
是 linux 沒錯,但應該可以通用,因為 MySQL Client 程式 linux 和 windows 用法應該差不多啦......

引用:
3.實際進行轉換(big5 -> utf8)
iconv -c -f big5 -t utf8 mysql.sql > mysql_utf8.sql
這一步可以改用 emeditor 把檔案格式改存為 UTF8


引用:
6. mysql -u root < mysql_utf8.sql
這一步要研究一下,看看 Windows 的指令怎麼下XD




==
最後,真的不行的話,直接把 DB 丟過來,我幫你轉比較快
前一陣子才剛把 latin1 資料庫整個升級成 UTF8,目前戰意高昂中XD
Chin-Wei 目前離線  
送花文章: 5387, 收花文章: 1361 篇, 收花: 5457 次
回覆時引用此帖
向 Chin-Wei 送花的會員:
ppp0600 (2007-01-24)
感謝您發表一篇好文章
舊 2007-01-24, 06:35 PM   #8 (permalink)
長老會員
 
ppp0600 的頭像
榮譽勳章
UID - 19602
在線等級: 級別:72 | 在線時長:5491小時 | 升級還需:130小時級別:72 | 在線時長:5491小時 | 升級還需:130小時
註冊日期: 2002-12-30
住址: 混亂地獄
文章: 10253
精華: 0
現金: 229 金幣
資產: 214383135 金幣
預設

引用:
作者: Chin-Wei
這一步要研究一下,看看 Windows 的指令怎麼下XD
==
最後,真的不行的話,直接把 DB 丟過來,我幫你轉比較快
前一陣子才剛把 latin1 資料庫整個升級成 UTF8,目前戰意高昂中XD
請幫我確定一下,6. mysql -u root < mysql_utf8.sql
若不行就只好請您幫忙了

請問一下,用PHPBB的內建備份就可以,還是要整個SQL的FOLDER拷貝出來?
ppp0600 目前離線  
送花文章: 26714, 收花文章: 7678 篇, 收花: 38372 次
回覆時引用此帖
舊 2007-01-24, 07:30 PM   #9 (permalink)
長老會員
 
Chin-Wei 的頭像
榮譽勳章
UID - 114112
在線等級: 級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時
註冊日期: 2007-02-18
文章: 3448
精華: 0
現金: 1674 金幣
資產: 32804 金幣
預設

引用:
作者: ppp0600
請幫我確定一下,6. mysql -u root < mysql_utf8.sql
若不行就只好請您幫忙了

請問一下,用PHPBB的內建備份就可以,還是要整個SQL的FOLDER拷貝出來?

我試過了,語法完全一樣 ^^a

1.備份請不要使用 phpbb,請使用 MySQL 提供的備份工具:mysqldump

2.請勿使用 binary copy(就是直接複製),MySQL 的 Storage Engine 不一定可以 portable,請使用

引用:
mysqldump --default-character-set=latin1 -u root -p 資料庫名稱 > latin1_db.sql
把你的資料庫備份成 latin1_db.sql 檔案,然後把檔案丟給我就行了XD
Chin-Wei 目前離線  
送花文章: 5387, 收花文章: 1361 篇, 收花: 5457 次
回覆時引用此帖
向 Chin-Wei 送花的會員:
ppp0600 (2007-01-25)
感謝您發表一篇好文章
舊 2007-01-25, 02:02 PM   #10 (permalink)
長老會員
 
ppp0600 的頭像
榮譽勳章
UID - 19602
在線等級: 級別:72 | 在線時長:5491小時 | 升級還需:130小時級別:72 | 在線時長:5491小時 | 升級還需:130小時
註冊日期: 2002-12-30
住址: 混亂地獄
文章: 10253
精華: 0
現金: 229 金幣
資產: 214383135 金幣
預設

這幾天比較空時我研究一下再向您請教,感謝喔
ppp0600 目前離線  
送花文章: 26714, 收花文章: 7678 篇, 收花: 38372 次
回覆時引用此帖
發文 回覆


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:56 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1