如何將整個資料庫中的所有資料表由繁體轉成簡體? |
答題得分者是:japhenchen
|
jhlin88
一般會員 發表:21 回覆:28 積分:9 註冊:2002-10-17 發送簡訊給我 |
各位大大:
小弟在設計簡體的畫面時,遇到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 發送簡訊給我 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
這點我得跳出來對微軟吐一下口水......不不不,是苦水,我現在在大陸工作,嗯,嗯,我是台灣來的,用到大量繁簡混用的環境,現在發現一個心得~~~~~ 由於簡体系統(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 發送簡訊給我 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
網上在"看@#$%^^!!"這個問題http://on.starblvd.net/cgi-bin/bbsmsg?cmex&tr=409&b5 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
|
jhlin88
一般會員 發表:21 回覆:28 積分:9 註冊:2002-10-17 發送簡訊給我 |
感謝版主大大及japhenchen關心這個主題:
昨天因為小弟出差,沒來得及回覆大大的留言,小弟在這先回答版主大大,資料庫是用sql server 2000
另外japhenchen大大提到os使用簡體的部份,小弟會向老闆要求japhenchen大大文章裡所提到的簡體環境,然後再來測試看看。 sql server2000 共用繁體的部份,其實小弟有寫了兩個函數來用BIG5TOGB及GBTOBIG5兩個,是參考站長寫的繁、簡體轉換的工具,然後寫在OnGetText及OnSetText事件裡,不知道這樣的方式正不正確?< > 或是這個部份兩位大大有更好的建議呢?< > 希望好還要更好囉…感激… 寫程式是為了讓生活更精彩
------
JamesLin |
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
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 發送簡訊給我 |
SQL2000有支援unicode並不能解決這個問題,而是要你的程式也要能支援unicode才能解決,unicode只會把相對應的繁体字碼用系統的繁体字顯示,簡体字碼則用系統中的簡体字顯示,並不會自動繁簡轉換 你的問題比較好解決一點,你把所有的DBEdit、DBComboBox還有PageControl都改成繁体的字型(在繁体系統叫新細明體,在簡体系統中叫MingLiu),其他的button、label保持簡体字型不變,這樣試看看是不是可以暫時解決這個問題 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
|
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
我剛剛看了一下別人的討論,終於得出最後的答案 請在這台電腦上,安裝簡体版http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c的MDAC上去~~~~~應該就正常了 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
|
jhlin88
一般會員 發表:21 回覆:28 積分:9 註冊:2002-10-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |