unicode宽字符转换串转换为char * 问题

sdyjmc 2009-07-23 03:13:36

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
这是怎么回事啊?
...全文
76 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-07-23
  • 打赏
  • 举报
回复
你这个是不是有UTF-8的字符集等 WideCharToMultiByte() 设置一下字符集等

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧