unicode宽字符转换串转换为char * 问题
m_sXHtmlContext = L"<?xml version='1.0' encoding='ISO-8859-1' ?><doc>Hello world!</doc>";
string mstring = WideCharToMultiChar( (LPCTSTR)m_sXHtmlContext );
const char* const theInputDocument = mstring.c_str();
string CSiteToolsDlg::WideCharToMultiChar(wstring str)
{
string return_value;
//获取缓冲区的大小,并申请空间,缓冲区大小是按字节计算的
int len=WideCharToMultiByte(CP_ACP,0,str.c_str(),str.size(),NULL,0,NULL,NULL);
//char *buffer=new char[len+1];
char *buffer=new char[len];
WideCharToMultiByte(CP_ACP,0,str.c_str(),str.size(),buffer,len,NULL,NULL);
//buffer[len]='\n';
//删除缓冲区并返回值
return_value.append(buffer);
delete []buffer;
return return_value;
}
0x003dc540 "<?xml version='1.0' encoding='ISO-8859-1' ?><doc>Hello world!</doc>" const char * const
转换后的字符串多了一些空格十六进制FD FD FD FD AB AB AB AB
这是怎么回事啊?