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);

注意:以上函数的具体使用可以查阅相关资料。

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



猜你喜欢

转载自blog.csdn.net/qq_33810188/article/details/80493811