MBCS與Unicode的轉換

2021-07-09 06:18:07 字數 931 閱讀 8179

1.使用widechartomultibyte

// 假設已經有了乙個unicode 串 wszsomestring... 

char szansistring [max_path];

widechartomultibyte ( cp_acp, wc_compositecheck, wszsomestring, -1, szansistring, sizeof(szansistring), null, null );

2.使用w2a巨集來實現(可能會出現棧溢位,不要在迴圈中使用,最好是單獨定義乙個函式來實現。)

#include

uses_conversion;

ptemp=w2a(wszsomestring);

使用multibytetowidechar

char *szprogid = "mapi.folder"; 

wchar szwideprogid[128];

clsid clsid;

long llen = multibytetowidechar(cp_acp,0,szprogid,strlen(szprogid),szwideprogid,sizeof(szwideprogid));

szwideprogid[llen] = '/0';

2.通過a2w巨集來實現(可能會出現棧溢位,不要在迴圈中使用,最好是單獨定義乙個函式來實現。)

#include

uses_conversion;

clsidfromprogid( a2w(szprogid),&clsid);

3.通過l這個巨集來實現

clsidfromprogid( l"mapi.folder",&clsid);

UNICODE與MBCS等字元問題

vs2008預設的字符集是unicode,而vc6.0預設是多位元組字符集,unicode字符集你要加 t 或l 你也可以 工程 屬性 修改字符集 unicode 它是用兩個位元組表示乙個字元的方法。比如字元 a 在ascii下面是乙個字元,可 a 在unicode下面是 兩個字元,高字元用0填充,...

Unicode 和多位元組字符集 MBCS

有些國際市場以大字符集來使用日文和中文等語言。為了支援這些市場的程式設計,microsoft 基礎類庫 mfc 支援以兩種方式處理大字符集 unicode 多位元組字符集 mbcs unicode 字串的 mfc 支援 整個類庫有條件地支援 unicode 字元和字串。特別是 cstring 類也支...

Unicode和多位元組字符集 MBCS 雜談

這個估計是很多人曾經頭疼過的問題,現在的vc版本基本都支援unicode和多位元組字符集 mbcs 在進行mfc程式設計時vc的預設設定是unicode字符集。但是我們通常需要做一些 移植的工作,如果將多位元組字符集下的程式 移植到unicode字符集環境中,就需要針對此做出很多態別的轉換,反之亦然...