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

BIG5 GB & Unicode轉換的問題

答題得分者是:m8815010
leeli
初階會員


發表:57
回覆:55
積分:27
註冊:2003-06-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-08 10:08:57 IP:61.30.xxx.xxx 未訂閱
Dears:   小弟我寫的一隻程式,功能是BIG5轉成Unicode。程式碼如下:
        szText = ChangWord;
        MultiByteToWideChar(CP_ACP, 0, szText.c_str(), -1, wszText, 512*2);
        TMemoryStream *ms = new TMemoryStream;
        ms -> Size = StrToInt(szText.Length())*sizeof(wchar_t);
        ms -> Write(wszText, ms -> Size);
        for (int i = 0; i < ms -> Size/2; i  )
        {
                BYTE *a = (BYTE*)wszText   i*2;
                BYTE *b = (BYTE*)wszText   i*2   1;
                *a^=*b;
                *b^=*a;
                *a^=*b;
        }
        for (int i = 0; i < ms -> Size/2; i  )
        {
                BYTE *a = (BYTE*)ms -> Memory   i*2;
                BYTE *b = (BYTE*)ms -> Memory   i*2   1;
                *a^=*b;
                *b^=*a;
                *a^=*b;
        }
        for (int i=0; iSocket->ActiveConnections; i  )
        {
                ServerSocket1->Socket->Connections[i]->SendBuf( wszText, 512*2);
        }
        delete ms;
 
現在小弟我有一個問題: 請問用這個相同的程式是否能將GB轉成Unicode呢? 如果不能的話,應該修改哪裡呢? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
------
小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。
對於各位的大力協助,感激不盡!
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-08 10:37:57 IP:61.63.xxx.xxx 未訂閱
引言: Dears: 小弟我寫的一隻程式,功能是BIG5轉成Unicode。程式碼如下:
        szText = ChangWord;
        MultiByteToWideChar(CP_ACP, 0, szText.c_str(), -1, wszText, 512*2);
        TMemoryStream *ms = new TMemoryStream;
        ms -> Size = StrToInt(szText.Length())*sizeof(wchar_t);
        ms -> Write(wszText, ms -> Size);
        for (int i = 0; i < ms -> Size/2; i  )
        {
                BYTE *a = (BYTE*)wszText   i*2;
                BYTE *b = (BYTE*)wszText   i*2   1;
                *a^=*b;
                *b^=*a;
                *a^=*b;
        }
        for (int i = 0; i < ms -> Size/2; i  )
        {
                BYTE *a = (BYTE*)ms -> Memory   i*2;
                BYTE *b = (BYTE*)ms -> Memory   i*2   1;
                *a^=*b;
                *b^=*a;
                *a^=*b;
        }
        for (int i=0; iSocket->ActiveConnections; i  )
        {
                ServerSocket1->Socket->Connections[i]->SendBuf( wszText, 512*2);
        }
        delete ms;
 
現在小弟我有一個問題: 請問用這個相同的程式是否能將GB轉成Unicode呢? 如果不能的話,應該修改哪裡呢? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
leeli你好: 沒有實際 >! 也就是說<>>這個>>,表示你叫它選>>"才可以的!
leeli
初階會員


發表:57
回覆:55
積分:27
註冊:2003-06-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-08 10:46:28 IP:61.30.xxx.xxx 未訂閱
引言: leeli你好: 沒有實際run過你的source code,如果它是ok由BIG5轉成Unicode的話,那我想你的PC應該是中文版的! 也就是說MultiByteToWideChar這個function的第一個參數你下的是CP_ACP,表示你叫它選system default(中文版OS理應是Big5)的字碼表(code page)!於是它便把input字串當成一個Big5的字串去轉成unicode! 所以今天你要在中文版的OS轉GB成unicode,理應是下第一個參數成"936"才可以的!
Dear m8815010: 我的系統是繁體中文版的沒錯。 忘了把我的問題說清楚。我現在是想要在簡體版的OS下去執行這一段程式。不知道這樣是不是能把GB轉成Unicode呢? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
------
小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。
對於各位的大力協助,感激不盡!
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-08 10:53:32 IP:61.63.xxx.xxx 未訂閱
引言: Dear m8815010: 我的系統是繁體中文版的沒錯。 忘了把我的問題說清楚。我現在是想要在簡體版的OS下去執行這一段程式。不知道這樣是不是能把GB轉成Unicode呢? 小弟我是BCB的新手,若有發問一些蠢問題,敬請見諒。 對於各位的大力協助,感激不盡!
leeli你好< >: 是的,可以的< >! 嗯,剛剛按錯了!還沒說完! >>這個表示>>! 但並不是隨便的字碼表>>去查詢! 另外你在中文版>国",它的輸出>>,這是錯的,這不是它真正的>>,但在中文版>弊!也就是它會把国當成弊去轉出>>就是吃 >! 發表人 -
hungchieh1029
一般會員


發表:0
回覆:1
積分:0
註冊:2011-08-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-08-11 17:29:00 IP:59.120.xxx.xxx 訂閱
謝謝你的分享
系統時間:2024-03-29 23:22:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!