c語言
ansi轉轉寬字元-mbstowcs
char
test[64];
sprintf(test, "hello char! \n");
printf("%s", test);
wchar_t
testt[64];
intnret = mbstowcs(testt, test, sizeof(testt));
wprintf(l
"%s",testt);
寬字元轉ansi-wcstombs
wchar_t
testo[64];
swprintf(testo, l
"hello wchar ! \n");
wprintf(l
"%s",testo);
char
testf[64];
wcstombs(testf, testo, sizeof(testf));
printf("%s \n", testf);
windows平台
ansi轉轉寬字元:multibytetowidechar(uintcodepage,
dword dwflags,
lpcstr lpmultibytestr,
int cchmultibyte,
lpwstr lpwidecharstr,
int cchwidechar)
codepage
:指定執行轉換的多位元組字元所使用的字符集
,可以使用
cp_acp。
dwflags:一組位標記用以指出是否未轉換成預作或
寬字元(若組合形式存在),是否使用象形文本替代
控制字元
,以及如何處理無效字元。一般取值為0時。
lpmultibytestr:指向待轉換的字串的緩衝區。
cchmultibyte:指定由引數lpmultibytestr指向的字串中位元組的個數。可以設定為-1,會自動判斷lpmultibytestr指定的字串的長度
lpwidecharstr:指向接收被轉換字串的緩衝區。
cchwidechar:指定由引數lpwidecharstr指向的緩衝區的寬位元組數。若此值為0,函式不會執行轉換,而是返回目標快取lpwidechatstr所需的寬字元數。
寬字元轉ansi:widechartomultibyte(uint codepage,
dword dwflags,
lpcwstr lpwidecharstr,
int cchwidechar,
lpstr lpmultibytestr,
int cchmultibyte,
lpcstr lpdefaultchar,
lpbool pfuseddefaultchar)
lpdefaultchar和pfuseddefaultchar:只有當widechartomultibyte函式遇到乙個寬位元組字元,而該字元在ucodepage引數標識的**頁中並沒有它的表示法時,widechartomultibyte函式才使用這兩個引數。(通常都取值為null)
如果寬位元組字元不能被轉換,該函式便使用lpdefaultchar引數指向的字元。如果該引數是null(這是大多數情況下的引數值),那麼該函式使用系統的預設字元。該預設字元通常是個問號。這對於檔名來說是危險的,因為問號是個萬用字元。
pfuseddefaultchar引數指向乙個
布林變數
,如果unicode字串中至少有乙個字元不能轉換成等價多位元組字元,那麼函式就將該變數置為true。如果所有字元均被成功地轉換,那麼該函式就將該變數置為false。當函式返回以便檢查寬位元組字串是否被成功地轉換後,可以測試該變數。
使用:
ansi轉寬字元
char
test[64];
sprintf(test,"hello char ! \n");
printf("%s",test);
wchar_t
testt[64];
intnret = multibytetowidechar(cp_acp,0,test, -1, testt,sizeof(testt));
wprintf(l
"%s",testt);
寬字元轉ansi
wchar_t testo[64];
swprintf(testo,l
"hello wchar !\n");
wprintf(l
"%s",testo);
char testf[64];
widechartomultibyte(cp_oemcp,0,testo, -1, testf,sizeof(testf),null,false);
printf("%s\n",testf);
ANSI與Unicode字元巨集轉換
ansi 操作函式以 str開頭,如 strcpy strcat strlen unicode 操作函式以 wcs開頭,如 wcscpy wcscpy wcslen ansi unicode 操作函式以 tcs 開頭 tcscpy c執行期庫 ansi unicode 操作函式以 lstr 開頭ls...
ANSI字元和UNICODE字元的轉換
此方法經常用於vc寫的dll或ocx函式的返回值中,而且此dll或ocx函式是供vb或js呼叫的。函式返回使用下面的格式返回 return sysallocstring bstr wtext wtext是轉換後的unicode字串 或 return sysallocstring bstr stext...
ansi字元,unicode字元
編碼指不同國家的語言在計算機中的一種儲存和解釋規範 ansi與ascii 最初,internet上只有一種字符集 ansi的ascii字符集 american standard code for information interchange,美國資訊交換標準碼 它使用7 bits來表示乙個字元,總...