1. 程式人生 > >UNICODE字符集和多位元組字符集

UNICODE字符集和多位元組字符集

可以在程式中設定使用哪種字符集

#ifdef UNICODE

#define ...

#else

#define ...

#endif

---------------------------------------------------

ANSI編碼在不同的國家其標準不同

UNICODE為統一的編碼,有UTF-8 UTF-16 UTF-32

----------------------------------------------------

多位元組一般指ANSI字符集

UNICODE一般指UTF-16

----------------------------------------------------

一般地,當工程設定為UNICODE時,_T和_TEXT會在常量前加上L,否則以一般的字元處理

#ifdef _UNICODE

#define __T(x)  L ## x

#else

#define __T(x)

#endif

---------------------------------------------------------------------------------------------

在UNICODE環境下使用 writePrivateProfileString 函式

以上函式需要寬字元,為此需要將多位元組字元轉成寬字元

wchar_t ch[20]=L"F:\\test.ini"//注意需要加上L

char chTemp[20]="F:\\test.ini";//定義多位元組

wchar_t str[20];//直接定義寬字串

char strTemp[20];//定義多位元組字串,用於將浮點型的轉化

double a=123.123456;

_gcvt_s(strTemp,sizeof(strTemp),a,6);//注意_gcvt_s函式的使用

MultiByteToWideChar(CP_ACP,0,strTemp,-1,str,20);//呼叫API將多位元組轉成寬字元

WritePrivateProfileString(L"NAME",L"NUM",str,ch);//注意需要在多位元組前加上L

在多位元組環境下,可以直接使用,不需要轉化

WritePrivateProfileString("NAME","NUM",strTemp,chTemp);

注意:以上函式的具體使用可以查閱相關資料。

----------------------------------------------------------------------------------------------