全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1825
推到 Plurk!
推到 Facebook!

RC檔語言轉換

答題得分者是:aftcast
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-20 21:42:42 IP:220.132.xxx.xxx 訂閱
請問各位先進
小弟在RC檔案中定義繁體中文的字串
請問要如何在程式執行時將此字串轉成簡體中文
並能在簡體的windows上能正確顯示呢
小弟試過將字串使用Big5轉Unicode然後在簡體windows上顯示
及將Unicode轉GB
但都無法正確顯示
請問要用何種方式才能正確顯示
aftcast
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-21 05:35:53 IP:122.120.xxx.xxx 訂閱
除非你用2009版,那麼unicode在元件上顯示就沒有問題。如果是以下的版本,那就要用用big5 <--> GB轉換。

有需要的話可以參考我的blog轉換範例。

http://aftcast.pixnet.net/blog/post/22191609
------



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

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-21 08:38:41 IP:60.248.xxx.xxx 訂閱

小弟是要更改TMainMenu中TMenuItem的Caption
在RC檔中定義繁體字
然後用大大提供的方式
使用Big5->Unicode
及Big5->GB->Unicode
在繁體的windows上都可正常顯示
但在簡體的windows便都無法顯示
不知要如何修改才能在兩種的windows都能正常顯示
===================引 用 aftcast 文 章===================
除非你用2009版,那麼unicode在元件上顯示就沒有問題。如果是以下的版本,那就要用用big5 <--> GB轉換。

有需要的話可以參考我的blog轉換範例。

http://aftcast.pixnet.net/blog/post/22191609
aftcast
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-21 11:40:15 IP:122.120.xxx.xxx 訂閱
對不起,不太明白你說的

使用Big5->Unicode
及Big5->GB->Unicode

若在簡體環境下,最終的結果必需是gb2312。unicode只是轉換的過程時會用到。

原理上應該是Big5->Unicode->GBK->GB2312 然後顯示。
如果是用我部落格的function,那就是直接調用 Big2Gb(AnsiString sBig)

此外我不確定字型要換嗎? 有點忘了… (先試不換看看再說,或是有前輩知道?)

你這是麼做的嗎?
------



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

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2008-11-21 11:44:06, 註解 無‧
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-21 15:01:08 IP:60.248.xxx.xxx 訂閱

小弟只是想說若是都是轉成unicode
是否這樣在顯示上
不論是在繁體或是簡體的作業系統都能正確的顯示字型

===================引 用 aftcast 文 章===================
對不起,不太明白你說的

使用Big5->Unicode
及Big5->GB->Unicode

若在簡體環境下,最終的結果必需是gb2312。unicode只是轉換的過程時會用到。

原理上應該是Big5->Unicode->GBK->GB2312 然後顯示。
如果是用我部落格的function,那就是直接調用 Big2Gb(AnsiString sBig)

此外我不確定字型要換嗎? 有點忘了… (先試不換看看再說,或是有前輩知道?)

你這是麼做的嗎?
aftcast
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-21 19:08:46 IP:122.120.xxx.xxx 訂閱
如果你希望的是全都透過unicode來表達。那在2009版以前你需要把元件都改成 tnt 的元件。因為之前的vcl都是ansi版的,沒有支持unicode !!

Big5 或是 GB2312 都是ansistring相容的,所以vcl都ok! 但unicode則都不ok。

在「原來的」vcl上要使用unicode的字串,這是不可能的事別花力氣了!
------



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

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-11-24 09:28:12 IP:210.202.xxx.xxx 訂閱
小弟目前遇到的問題是
若將繁體字定義在RC檔中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,仍會顯示成亂碼
但若將繁體字定義在程式中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,則顯示就正常
此問題是否有什麼解決的方式嗎

===================引 用 aftcast 文 章===================
如果你希望的是全都透過unicode來表達。那在2009版以前你需要把元件都改成 tnt 的元件。因為之前的vcl都是ansi版的,沒有支持unicode !!

Big5 或是 GB2312 都是ansistring相容的,所以vcl都ok! 但unicode則都不ok。

在「原來的」vcl上要使用unicode的字串,這是不可能的事別花力氣了!
aftcast
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-11-24 10:32:50 IP:122.120.xxx.xxx 訂閱
嗯,我一時忘了RC檔本身好像是unicode?因近來工作忙,所以沒測,但印象中好像是那樣。

所以,請用下面的方式來測。

以unicode的方式取得rc裡的字串,然後使用

unicode->GBK->GB2312的方式來轉看看。

方法則在我的blog裡面,是Bi5->GB函式中的一部份程式,有空的話看一下那函式的那容。


===================引 用 lin11112 文 章===================
小弟目前遇到的問題是
若將繁體字定義在RC檔中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,仍會顯示成亂碼
但若將繁體字定義在程式中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,則顯示就正常
此問題是否有什麼解決的方式嗎

------



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

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
lin11112
初階會員


發表:42
回覆:83
積分:25
註冊:2003-02-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-11-25 15:28:58 IP:218.210.xxx.xxx 訂閱
已試成功
感謝大大的幫忙
===================引 用 aftcast 文 章===================
嗯,我一時忘了RC檔本身好像是unicode?因近來工作忙,所以沒測,但印象中好像是那樣。

所以,請用下面的方式來測。

以unicode的方式取得rc裡的字串,然後使用

unicode->GBK->GB2312的方式來轉看看。

方法則在我的blog裡面,是Bi5->GB函式中的一部份程式,有空的話看一下那函式的那容。


===================引 用 lin11112 文 章===================
小弟目前遇到的問題是
若將繁體字定義在RC檔中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,仍會顯示成亂碼
但若將繁體字定義在程式中
則TMainMenu及TreeView使用Big5->GB的轉換
然後在簡體的windows顯示,則顯示就正常
此問題是否有什麼解決的方式嗎

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