[問題] 主機升級, 資料轉不過去(big5-->utf-8 )

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
aerocat
星球普通子民
星球普通子民
文章: 10
註冊時間: 2003-04-15 11:35

[問題] 主機升級, 資料轉不過去(big5-->utf-8 )

文章 aerocat »

舊系統
●架設主機作業系統:linux centos 3.4 (= redhat ES v3, kernel 2.4)中文語系支援big5
●快速架站程式:phpbb plus 1.3( phpbb2 v2.06)
●免費空間連結:自己的主機
●您的上網方式:seednet ADSL。
●您安裝的程式:Apache 2 + php 4.3.2 + MySql 3.23.58。
●您的 phpBB2 版本:phpBB 2.06。
●錯誤代碼:

新系統\r
●架設主機作業系統:linux centos 4.0 (= redhat ES v4, kernel 2.6) 中文語系僅支援uft-8
●快速架站程式:phpbb plus 1.3( phpbb2 v2.06)
●免費空間連結:自己的主機
●您的上網方式:seednet ADSL。
●您安裝的程式:Apache 2 + php 4.3.9 + MySql 4.1.7。
●您的 phpBB2 版本:phpBB 2.06。
●錯誤代碼:

mysql 管理工具 = phpMyAdmin 2.6.0-pl3
資料庫dump file size =34Mb
Apache AddDefaultCharset Big5 和 uft-8都是過了

(1)因為新的 作業系統centos 4 本身僅支援utf-8 ,phpMyAdmin放上去, 語言也只能選 zhtw-utf-8.
(2)我曾試著將原資料庫中的資料轉成utf-8 放進去新的資料庫,
use mysqldump ----> (windows) converz ----> mysql dumpfile 至新主機
dumpfile 用 ultraedit看 中文是ok的
但是每次restore進去, 都不成功 , 一直停著應該是當掉了. <---是不是"許蓋功"問題造成, 我確定我的資料中有這些字, 原資料也有日文
我也試過每個table分開dump , 再轉成utf-8, 再restore,但是在create table時,都會說我語法錯誤, 可以我怎麼看sql都是正常阿.
最後我先建好table , 再將資料(utf-8)用sql 放進去, 這樣可以成功, 但是從phpMyadmin中看是亂碼, phpbb2 也是亂碼\r
(3)後來我不轉uft-8, 直接restore dump-file.sql 回去, 這樣phpbb2就可以, 但是從phpmyadmin中看到的都是亂碼, 這樣資料沒辦法維護.
(Character Sets and Collations 全部用latin1)

請問有什麼辦法可以保留big5格式資料, 但是phpmyadmin可以看到正常中文
或是一定要轉換成utf-8
(1)原資料轉成uft-8要怎樣作才會正常
(2)非ie 看可以正常顯示嗎?
小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

文章 小竹子 »

phpmyadmin 瀏覽格式改 big5 就好了
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。
aerocat
星球普通子民
星球普通子民
文章: 10
註冊時間: 2003-04-15 11:35

文章 aerocat »

小竹子 寫:phpmyadmin 瀏覽格式改 big5 就好了
linux 不支援big5 , 所以與選不到\r
圖檔[/img]
bebe2803
星球公民
星球公民
文章: 117
註冊時間: 2005-01-24 19:31
來自: Hong Kong

文章 bebe2803 »

linux 好像有中文碼的吧, 但在裝的時候就要選... (之後怎樣加我就不知道...) (裝過日文的 XD <- 雖然看不懂 | 但當掉了 XDDD)
怨念公社

phpBB 2.0.17, 8+1 個 template, 70+ mod...
小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

文章 小竹子 »

一定有~仔細找找,因為我都看的到!不然換新的 phpMyAdmin 試試看
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。
dener
星球公民
星球公民
文章: 35
註冊時間: 2004-08-15 15:58

文章 dener »

我覺得phpMyAdmin裝到2.60 rc1就好了?
○作業系統:Windows XP Pro
○快速架站:AppServ 2.4.0
○phpMyAdmin版本:2.6.0-rc1
○phpBB版本:2.0.13
○連線方式:2M/256K
○我的網站:http://220.134.150.72/
沒有全天候24小時開機,如找不到網頁請見諒:)
目前狀態,停機中
aerocat
星球普通子民
星球普通子民
文章: 10
註冊時間: 2003-04-15 11:35

文章 aerocat »

小竹子 寫:一定有~仔細找找,因為我都看的到!不然換新的 phpMyAdmin 試試看
因該是linux + mysql 只支援 unicode 的原因, 同一版本的 phpmyadmin,我在舊系統上就有big5 的選項
aerocat
星球普通子民
星球普通子民
文章: 10
註冊時間: 2003-04-15 11:35

文章 aerocat »

參考網站上utf-8化的做法
我現在將phpbb2語系檔轉成utf-8(encode=utf-8), 也將舊資料庫的資料轉成uft-8(在phpmyadmin中可正常顯示)
但是在IE中只有語系檔中的字是正常的, 請問還有哪些地方沒做好\r


圖檔


圖檔
最後由 aerocat 於 2005-03-10 09:16 編輯,總共編輯了 1 次。
Darkhero
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-03-05 15:58
來自: 台北
聯繫:

文章 Darkhero »

Hi.. 這位親愛的朋友
你的問題應該在 StudyArea database 板上,我與 aerocat 朋友有一連串的討論...

另外 aerocat ,你的問題我已經回復你囉...快點去看看...
你的問題比你想的簡單解決阿....

基本上你的 phpMyAdmin-2.6.1 + mysql 4.1 只要能正確顯示內文,應該就是資料庫內容的編碼是正確的utf8, 只要加上我後來改的 phpbb2 程式碼即可正常顯示囉...
shstw
星球普通子民
星球普通子民
文章: 13
註冊時間: 2003-06-04 15:04
聯繫:

文章 shstw »

這是我的網站 PHP NUKE 7.6 版 BIG5 轉換為 UTF-8 的個人之心得報告。

提供各位網友參考

-- Linux F C 3
-- 伺服器版本: 3.23.58
-- PHP 版本: 4.3.9

轉換步驟:
一、開啟伺服器的 httpd.conf
找到:
AddDefaultCharset Big5 (或是iso8859-1)

註解掉(修改為)
# AddDefaultCharset Big5 (或是iso8859-1)

說明:註解掉的話,才會因網站內碼性質而自動顯示,而不會產生亂碼。
例如:我有三個網站,一個中文(BIG5)、一個中文(UTF-8)還有一個日文(JIS)

二、網站首頁顯示內碼之依據
開啟根目錄:language/lang-chinese.php
找到第一行的
define("_CHARSET","BIG5");

修改為:
define("_CHARSET","utf-8");

三、討論區首頁顯示內碼之依據
開啟:modules/Forums/language/lang_chinese_traditional_taiwan/lang_main.php
找到第一行的
$lang['ENCODING'] = 'big5';

修改為:
$lang['ENCODING'] = 'utf-8';

四、下載內碼轉換工具 convertz740 (免安裝,解壓縮後即可使用)
下載網址:http://alf-li.pcdiscuss.com/

接下來要把所有的語言檔及內含有中文字的程式檔,
都要利用內碼轉換工具 convertz740,從 big5 轉換為 utf-8(字形不變)

重要補充:
請使用 phpMyAdmin 2.6.1-pl3 導入資料庫
下載網址:http://www.phpmyadmin.net/home_page/index.php

注意:資料表內含有中文也沒問題。

前提是請使用 phpMyAdmin 2.6.1-pl3
步驟一、
一定要將預設語言調為:chinese_traditional-utf-8 ,這樣讀入的資料才不會亂碼。

二、建立資料庫名稱後, 資料表一定要使用複製,再貼到 sql 的欄框內執行 。

※ 切勿使用瀏覽資料檔讀取的方式 ※

以上為個人實際轉換後之心得,
如有需要補充之處,請各位高手不吝補充之!!!
Darkhero
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-03-05 15:58
來自: 台北
聯繫:

文章 Darkhero »

shstw 寫:這是我的網站 PHP NUKE 7.6 版 BIG5 轉換為 UTF-8 的個人之心得報告。

提供各位網友參考

-- Linux F C 3
-- 伺服器版本: 3.23.58
-- PHP 版本: 4.3.9

轉換步驟:
一、開啟伺服器的 httpd.conf
找到:
AddDefaultCharset Big5 (或是iso8859-1)

註解掉(修改為)
# AddDefaultCharset Big5 (或是iso8859-1)

說明:註解掉的話,才會因網站內碼性質而自動顯示,而不會產生亂碼。
例如:我有三個網站,一個中文(BIG5)、一個中文(UTF-8)還有一個日文(JIS)

二、網站首頁顯示內碼之依據
開啟根目錄:language/lang-chinese.php
找到第一行的
define("_CHARSET","BIG5");

修改為:
define("_CHARSET","utf-8");

三、討論區首頁顯示內碼之依據
開啟:modules/Forums/language/lang_chinese_traditional_taiwan/lang_main.php
找到第一行的
$lang['ENCODING'] = 'big5';

修改為:
$lang['ENCODING'] = 'utf-8';

四、下載內碼轉換工具 convertz740 (免安裝,解壓縮後即可使用)
下載網址:http://alf-li.pcdiscuss.com/

接下來要把所有的語言檔及內含有中文字的程式檔,
都要利用內碼轉換工具 convertz740,從 big5 轉換為 utf-8(字形不變)

重要補充:
請使用 phpMyAdmin 2.6.1-pl3 導入資料庫
下載網址:http://www.phpmyadmin.net/home_page/index.php

注意:資料表內含有中文也沒問題。

前提是請使用 phpMyAdmin 2.6.1-pl3
步驟一、
一定要將預設語言調為:chinese_traditional-utf-8 ,這樣讀入的資料才不會亂碼。

二、建立資料庫名稱後, 資料表一定要使用複製,再貼到 sql 的欄框內執行 。

※ 切勿使用瀏覽資料檔讀取的方式 ※

以上為個人實際轉換後之心得,
如有需要補充之處,請各位高手不吝補充之!!!

你這樣的情況跟 mysql 4.1 的情況不相同...

基本上 mysql 4.1 以後牽扯到 mysql server , mysql dateabase , mysql client 的編碼問題..
而 mysql database 將資料傳給 mysql client (也就是php) 的時候,會根據兩邊的編碼進行編碼轉換.

例如: 我 mysql database 內的資料 為 utf8 且, database 的編碼設定為 utf8 ,而 client 編碼設定為 big5 的情況下.
mysql 會將資料進行一次轉碼後送出給 mysql client , 例如這次.aerocat 的情況.前台的 phpbb2 還是以 big5 呈現.

mysql 4.0 以前 還有 mysql 3.x 沒有這方面的考量,簡單的說,你它預設你cleint 跟 server database 的編碼都是一樣的...
所以就是都直接輸出,若是有需要轉換等等....
都是由 php 進行處理, 像是使用 iconv 等....

而這陣子 很多人資料庫環境從 mysql 4.0 or mysql 3.x 變成 mysql 4.1 後...會發生 phpmysqlmin 2.6.1 看到的都是亂碼(????)主要是因為..資料內容是 big5 而 資料庫設定的編碼是 utf8 .

另外,若是 aerocat 想轉成 utf8 事實上以現在來說會比較簡單.....
因為只要轉換好 phpbb2 的語系檔案,且將 includes/db.php 中設定的那個 set name= big5 改成 utf8 即可.
資料庫由於已經都是 utf8 格式.所以就不用擔心.
Darkhero
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-03-05 15:58
來自: 台北
聯繫:

文章 Darkhero »

Hi..各位親愛的朋友們...

小弟製作了一個簡單的範例...
Hi....

如果你還有在看這個討論串的話....

我剛剛利用了一點點的時間...建立了另外一個測試phpbb2站...
phpbb2 UFT8 版
http://home.v-dark.net/~darkhero/phpBB2UTF8/

跟原來的
http://home.v-dark.net/~darkhero/phpBB2/
使用的是同一個 phpbb2 資料庫.

相關程式碼我只有修改\r
代碼:
$db->sql_query("SET NAMES big5;");
$db->sql_query("SET CHARACTER_SET_CLIENT=big5;");
$db->sql_query("SET CHARACTER_SET_RESULTS=big5;");


代碼:
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");


以及把原來 big5 的語系檔案利用 piconv 轉成 utf8 及修改 lang_main 中的 big5 為 utf8 而已...
hihihihi
星球公民
星球公民
文章: 46
註冊時間: 2003-12-27 12:13

文章 hihihihi »

Darkhero 寫:Hi..各位親愛的朋友們...

小弟製作了一個簡單的範例...
Hi....

如果你還有在看這個討論串的話....

我剛剛利用了一點點的時間...建立了另外一個測試phpbb2站...
phpbb2 UFT8 版
http://home.v-dark.net/~darkhero/phpBB2UTF8/

跟原來的
http://home.v-dark.net/~darkhero/phpBB2/
使用的是同一個 phpbb2 資料庫.

相關程式碼我只有修改\r
代碼:
$db->sql_query("SET NAMES big5;");
$db->sql_query("SET CHARACTER_SET_CLIENT=big5;");
$db->sql_query("SET CHARACTER_SET_RESULTS=big5;");


代碼:
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");


以及把原來 big5 的語系檔案利用 piconv 轉成 utf8 及修改 lang_main 中的 big5 為 utf8 而已...
對,如果全新安裝就不用把db轉做utf-8,以下是把db轉換成utf-8的方法
run:
mysqldump --add-drop-table dbname -uroot -p123456 > /root/phpbb.sql
用piconv轉成utf-8再run 以下command:
mysql -uroot -p123456 dbname < /root/phpbb.sql
注意,把coding轉做utf-8好像會出現系統寄出的email全部變成亂碼
aerocat
星球普通子民
星球普通子民
文章: 10
註冊時間: 2003-04-15 11:35

文章 aerocat »

一個問題:
我的頁面檔案, *.html 已經UTF-8化 , 中文正常顯示
我的phpbb2 ,語系檔跟資料庫內容都utf-8化 (做法跟大家一樣)
為什麼 在db.php 中藥加上一段\r
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");

在utf-8 化的相關文章, 都沒看到, 這是只會發生mysql v4.1.xx以上的問題嗎?

還有請問一下 utf-8後, 中文搜尋 有解嗎?/
最後由 aerocat 於 2005-03-10 12:28 編輯,總共編輯了 2 次。
Darkhero
星球普通子民
星球普通子民
文章: 6
註冊時間: 2002-03-05 15:58
來自: 台北
聯繫:

文章 Darkhero »

aerocat 寫:一個問題:
我的頁面檔案, *.html 已經UTF-8化 , 中文正常顯示
我的phpbb2 ,語系檔跟資料庫內容都utf-8化 (做法跟大家一樣)
為什麼 在db.php 中藥加上一段\r
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");

在utf-8 化的相關文章, 都沒看到, 這是只會發生mysql v4.1.xx以上的問題嗎?
如果願意的話...
你可以試試看喔...
把現在的 phpbb2 檔案都備份一份...
弄成 phpbb2_big5 , 然後資料庫什麼都用一樣的....
只改變,utf8 成 big5 ....

你會發現... 資料庫的資料都不用改.但是輸出已經可以直接變成 big5 .....
主題已鎖定

回到「phpBB 2 安裝與使用」