線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4149
推到 Plurk!
推到 Facebook!

如何將整個資料庫中的所有資料表由繁體轉成簡體?

答題得分者是:japhenchen
jhlin88
一般會員


發表:21
回覆:28
積分:9
註冊:2002-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-05 13:10:29 IP:211.23.xxx.xxx 未訂閱
各位大大:     小弟在設計簡體的畫面時,遇到GB碼的兩個問題,如下     1、原來繁體的資料庫中,有許多資料表有中文(繁體),作為對照檔用,如今在顯示資料的時候,自然都是亂碼,不知道各位大大有什麼方法將目前使用的資料表裡的資料全部轉成GB碼呢?     2、如下圖中,小弟在PAGECONTROL元件的TABSHEET想要顯示簡體,CAPTION也轉成GB碼了,FONT屬性NAME和CHARSET也設定了,就是這個地方的字仍然是亂碼,不知道要如何設定才正確? < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=12542236&CC=280504"> 與Delphi 培養感情中^0^ JamesLin.
------
JamesLin
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-06 09:12:11 IP:218.163.xxx.xxx 未訂閱
jhlin88 你好 : 請問是何種資料庫 ?
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-06 11:27:22 IP:211.96.xxx.xxx 未訂閱
這點我得跳出來對微軟吐一下口水......不不不,是苦水,我現在在大陸工作,嗯,嗯,我是台灣來的,用到大量繁簡混用的環境,現在發現一個心得~~~~~    由於簡体系統(98之後)所使用的GBK字碼中帶有繁体字的區段(約二千字),於是在簡体的作業系統里,一遇上BIG5碼繁体字,會自動轉換對應到GBK碼的繁体的字段來顯示,於是不管SQL、PARADOX或者是資料夾名稱、檔案名稱,用的是GB簡体字,還是BIG5的繁体字,都能正常在簡体版的系統中被使用,不會有任何問題。    BUT~~~~繁体中文系統可就沒這麼好康了,BIG5舊版本的字碼中,並不帶有簡体字符段,導至繁体中文系統一遇上簡体GB碼,就變成怪字甚至是亂碼,這個問題雖然在WINDOWS2K之後被UNICODE解決掉,但並不代表所有我們自己寫出來的程式都可以支援UNICODE,目前有支援UNICODE的程式大部份都是微軟的東東,像OFFICE、WMP、IE.........而且是在2000/XP才會正常哦,其他的程式像ULTRAEDIT、ACDSEE、PHOTOSHOP......只要一遇上簡体字,全砸鍋....    現在雖然台灣的資策會已經制定BIG5E碼,但是截至目前為止,尚無任何公開銷售作業系統有搭這個字碼版本(丟臉),這個SOLUTION,也無法被舊有的系統所支持,真不知道,台灣的資訊相關部門,閉門造車的實力,還真的很強~~~ 參考一下這篇文章,你就會知道,台灣的資訊部門,有多麼糟糕http://freebsd.sinica.edu.tw/~statue/hanzi/examp/ 至於您的問題要如何解決?最簡單的方法就是把你的程式改成UNICODE可以支援的版本吧(怎麼改~~~~我也不是很懂),要不然就是你內建一個繁簡轉換的程式,從資料庫中調出來顯示時簡体轉繁体,輸入想要存入資料庫時再把体繁轉簡体...(看@#$%^!!)..... 說難不難,做個對照表來查找轉換吧,或到網上找簡繁對照表下來用,中文繁体常用字有幾字?5401字,扣掉繁簡共同字,大約剩二千出頭,這個對照表里,就有二千多字,每一行就二個中文字,第一個字是簡体,第二個字是對應的繁体,然後用二個BIG5: ARRAY[0..2000] OF WORD; GB:ARRAY[0..2000]將讀到的每行字分開存放,這樣你總該知道如何查表了吧~~~~~~ 靜態的文字(在DESIGN TIME放上去的)可以不用這樣做,動態出現的(調資料庫、人工輸入)才需要做查表轉換的動作 繁体中文系統,還真是繁死人了~~~~資策會啊,加油吧~~~~ 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-06 11:30:59 IP:211.96.xxx.xxx 未訂閱
我剛剛的回答可能也有點誤解你的問題,不過請你試一下,你把你的程式跟資料庫原封不動的拿到簡体的作業系統(98就可以),那些繁体字亂碼會恢復正常~~~~(再看!@#@#$%^^一次) 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-06 12:38:07 IP:211.96.xxx.xxx 未訂閱
網上在"看@#$%^^!!"這個問題http://on.starblvd.net/cgi-bin/bbsmsg?cmex&tr=409&b5 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
jhlin88
一般會員


發表:21
回覆:28
積分:9
註冊:2002-10-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-07 09:32:03 IP:211.23.xxx.xxx 未訂閱
感謝版主大大及japhenchen關心這個主題: 昨天因為小弟出差,沒來得及回覆大大的留言,小弟在這先回答版主大大,資料庫是用sql server 2000 另外japhenchen大大提到os使用簡體的部份,小弟會向老闆要求japhenchen大大文章裡所提到的簡體環境,然後再來測試看看。    sql server2000 共用繁體的部份,其實小弟有寫了兩個函數來用BIG5TOGB及GBTOBIG5兩個,是參考站長寫的繁、簡體轉換的工具,然後寫在OnGetText及OnSetText事件裡,不知道這樣的方式正不正確?< > 或是這個部份兩位大大有更好的建議呢?< > 希望好還要更好囉…感激… 寫程式是為了讓生活更精彩
------
JamesLin
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-07 10:20:09 IP:61.221.xxx.xxx 未訂閱
sql server 2000有支援UNICODE可參考KTOP網站做法 參考站長寫的繁、簡體轉換的工具 可能無法全部轉換成功 建議使用這一套軟體 http://alf-li.tripod.com/c_index.html ConvertZ 6.02 版 先將舊資料轉出txt檔使用轉換之後再匯入 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 要簡繁程式判斷 是delphi的UNICODE核心的問題最大 所以建議使用 html來達成或web元件 光使用ini UNICODE元件 還是只能解決一半 或直接由 官方轉碼網站 將文字轉換後再偷丟至資料庫 不過時差問題多多 如果不需即時性到也是可以的 可搜索找 QOO 版主資料 也有範例 os問題是也不少啦 最快方式就是 偷用字型檔 這方式 不然2個系統玩下瘋了 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31174 Unicode補完計畫搬家了! 即日起請至 http://cpatch.org/unicode/ 發表人 - ab 於 2003/11/07 10:48:41
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-07 16:27:44 IP:211.96.xxx.xxx 未訂閱
SQL2000有支援unicode並不能解決這個問題,而是要你的程式也要能支援unicode才能解決,unicode只會把相對應的繁体字碼用系統的繁体字顯示,簡体字碼則用系統中的簡体字顯示,並不會自動繁簡轉換 你的問題比較好解決一點,你把所有的DBEdit、DBComboBox還有PageControl都改成繁体的字型(在繁体系統叫新細明體,在簡体系統中叫MingLiu),其他的button、label保持簡体字型不變,這樣試看看是不是可以暫時解決這個問題 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-07 16:53:41 IP:61.221.xxx.xxx 未訂閱
http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm http://www.tonixsoft.com/index.php?mmenu_id=0003 順便貼一下 方便記者 哈哈 japhenchen 兄說的沒錯 等D8出來解決.net與UNICODE問題 哈哈
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-07 22:34:04 IP:218.32.xxx.xxx 未訂閱
純討論, 因為這跟我所知道的有所出入 : > 不太建議改用
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-10 15:21:55 IP:211.96.xxx.xxx 未訂閱
我剛剛看了一下別人的討論,終於得出最後的答案    請在這台電腦上,安裝簡体版http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c的MDAC上去~~~~~應該就正常了 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
jhlin88
一般會員


發表:21
回覆:28
積分:9
註冊:2002-10-17

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-11-14 09:10:32 IP:211.23.xxx.xxx 未訂閱
感謝大大們的解說^^,小弟第一個將原來的程式搬到簡體中文WINDOWS 2000專業版上面之後,該畫面原本呈現亂碼的地方已經正常。 接著將資料庫的資料整個匯出來文字檔之後,再將資料轉成GB碼,然後再匯入原來的資料庫裡,呈現的方式也都正常是簡體了。 感謝各位大大的幫忙,只能給分一個人,japhenchen大大好熱心,小弟決定把分數給您了,這裡只能先跟其他大大說聲抱歉了^^ 寫程式是為了讓生活更精彩
------
JamesLin
系統時間:2024-06-24 21:50:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!