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

XE下繁體Unicode文字如何轉換為簡體Unicode文字?

缺席
h@visli
資深會員


發表:101
回覆:417
積分:418
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-02-18 15:18:21 IP:121.15.xxx.xxx 訂閱
 各位新春快樂!

我有一份Unicode編碼的文本文檔,裏面大部分內容為繁體中文,其它為英文字符,需要將裏面的繁體中文內容轉為簡體中文Unicode內容,請問在Delphi XE下應該如何實現?
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
mypigbaby
高階會員


發表:11
回覆:166
積分:150
註冊:2006-07-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-02-18 15:50:59 IP:60.244.xxx.xxx 訂閱
試看看
這個是豬寶寶從網路上抄來的

[code delphi]
function Cn2Big(CnStr: string): string;
var
Len: Integer;
begin
Len := Length(CnStr);
SetLength(Result, Len);
LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(CnStr), Len, PChar(Result), Len);
end;

function BIG2cn(bigStr: string): string;
var
Len: Integer;
begin
Len := Length(bigStr);
SetLength(Result, Len);
LCMapString(GetUserDefaultLCID, LCMAP_SIMPLIFIED_CHINESE, PChar(bigStr), Len, PChar(Result), Len);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.Text:=CN2BIG(EDIT1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit2.Text:=big2cn(EDIT1.Text);
end;

[/code]


===================引 用 h@visli 文 章===================
各位新春快樂!

我有一份Unicode編碼的文本文檔,裏面大部分內容為繁體中文,其它為英文字符,需要將裏面的繁體中文內容轉為簡體中文Unicode內容,請問在Delphi XE下應該如何實現?
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-02-18 18:29:59 IP:114.32.xxx.xxx 訂閱
hello,

必需要警告豬寶寶上面貼的程式碼僅在以下情形是正確的:
1/ os本身是簡體的,而無論delphi是哪版 (d5以後應該都對)
2/ 若os是我們繁體的,那麼上面的碼僅delphi2009以上的版本才會正確。若2009以前的話,就錯!

若要正統的表達函式的用意,那 Cn2Big 或 Big2Cn的命名不正確。應該把
Cn2Big 改成 chs2cht (簡字體轉繁字體,必需強調的是…它與編碼轉換無關,也就是說都是在同一個編碼上換字而已)
Big2Cn 改成 cht2chs

因為,在上述所講的 1 的情形下,且delphi是2009前,雖然"看起來"字是對的,但其實轉來轉去都是GBK編碼,非big5。
而1的情形下,但delphi是2009以後,那麼情形與情形2是同樣的!

而上述2的情形下,其實是因為d2009後的字串是unicode,故LCMapString這個api會呼叫到LCMapStringW這個unicode版,於是變成簡"字型"unicode轉"繁"字型unicode。

若真的要把big5轉簡體,或是簡體轉big,那就沒那麼簡單。詳可見我的blog:
http://aftcast.pixnet.net/blog/post/22191609

此外,近期我可能會和qcom討論是否可以開個unicode的深入課程,最快3月多。但時候還請大家來聽並指教! :)


===================引 用 mypigbaby 文 章===================
試看看
這個是豬寶寶從網路上抄來的


------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2013-02-18 03:35:45, 註解 無‧
sryang
尊榮會員


發表:38
回覆:742
積分:876
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-02-19 18:25:32 IP:114.35.xxx.xxx 訂閱
我都用 MadEdit 來轉,不用寫程式 (我是來亂的)
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2013-02-19 03:26:40, 註解 無‧
h@visli
資深會員


發表:101
回覆:417
積分:418
註冊:2004-02-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-02-20 11:01:34 IP:121.15.xxx.xxx 訂閱
MadEdit這個工具很給力哦。可以完成我的任務。
但我還是想跟大家來探討一下這個Unicode碼集下的繁簡轉換,查了一下維基百科(http://zh.wikipedia.org/wiki/Category:維基字詞轉換),確實不太簡單。
===================引 用 sryang 文 章===================
我都用 MadEdit 來轉,不用寫程式 (我是來亂的)
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-02-20 11:06:04 IP:114.32.xxx.xxx 訂閱
@@,昏了…

若只是工具而非程式處理,那一堆好用的。我從以前到現在就用convertz,極強的轉換器!


===================引 用 h@visli 文 章===================
MadEdit這個工具很給力哦。可以完成我的任務。
但我還是想跟大家來探討一下這個Unicode碼集下的繁簡轉換,查了一下維基百科(http://zh.wikipedia.org/wiki/Category:維基字詞轉換),確實不太簡單。
===================引 用 sryang 文 章===================
我都用 MadEdit 來轉,不用寫程式 (我是來亂的)
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
h@visli
資深會員


發表:101
回覆:417
積分:418
註冊:2004-02-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2013-02-20 18:37:30 IP:121.15.xxx.xxx 訂閱
更想要探討Delphi XE程式下實現方法呢

===================引 用 aftcast 文 章===================
@@,昏了…

若只是工具而非程式處理,
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2013-02-21 10:56:05 IP:111.249.xxx.xxx 訂閱
convertz無敵,連編碼都可以處理
===================引 用 aftcast 文 章===================
@@,昏了…

若只是工具而非程式處理,那一堆好用的。我從以前到現在就用convertz,極強的轉換器!


===================引 用 h@visli 文 章===================
MadEdit這個工具很給力哦。可以完成我的任務。
但我還是想跟大家來探討一下這個Unicode碼集下的繁簡轉換,查了一下維基百科(http://zh.wikipedia.org/wiki/Category:維基字詞轉換),確實不太簡單。
===================引 用 sryang 文 章===================
我都用 MadEdit 來轉,不用寫程式 (我是來亂的)
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2013-02-22 10:34:57 IP:114.32.xxx.xxx 訂閱
豬寶寶的答案就是正解了,不合用嗎?

都沒結案呢!

===================引 用 h@visli 文 章===================
更想要探討Delphi XE程式下實現方法呢


------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2017-12-13 5:44:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!