在C++中,程序默认设置成unicode编码,所以关于如下字符串:
char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n',\
'o','p','q','r','s','t','u','v','w','x','y','z'}
aa.format(_T("%s"),a);
在使用AfxMessageBox(aa)输出时显示乱码,本来应该显示26个字母的;
请问用什么函数可以输出ansi字符?
这里的问题应该是输出时错吧ansi字符当成unicode字符输出了吧?
------解决方案--------------------------------------------------------
wchar a[26]
------解决方案--------------------------------------------------------
有个类似的函数 WideCharToMultiByte(
------解决方案--------------------------------------------------------
一般情况下面,最好用TCHAR类型,比如:
#include <windows.h>
int main(){
TCHAR Message[] =TEXT("Hello,World");
TCHAR WndTips[] =TEXT("Message");
MessageBox(NULL, Message, WndTips, MB_OK);
}
如果你知道你现在有的字符串类型是char,而你需要使用wchar_t,则使用WideCharToMultiByte转换就行了