在下载http文件时遇到的问题,当要下载一个中文文件名的时候,windows的编码默认是GBK,而web服务器要求是UTF-8,所以出现文件http的400错误,需要做编码的转换。我尝试使用MultiByteToWideChar去转换,但没有成功。
请各位指点,如何实现这个转换,多谢!
请各位指点,如何实现这个转换,多谢!
解决方案 »
- 超级玛丽的多线程问题
- MFC文本框字体设定好后内存不用释放么
- 如何在单文档中给对话框添加视图?
- 简单问题,用CreateFile如何实现追加写?
- 怎样将原来不支持COM的mfc类,成为com类
- 怎样设置相对路径啊?
- http协议是无状态协议怎么理解?
- 高手指点:如何用MFC实行以下功能:在窗口第一行中输入1+1,回车后在第二行显示结果等于2。谢谢
- 错误 3 error C2679: 二进制“=”: 没有找到接受“const CHANGE_INFO”类型的右操作数的运算符(或没有可接受的转换) c:\program files\microsoft visual studio 8\vc\include\
- 在win32 console 下怎么保存文件
- 反流氓软件工作室!火热加盟!25818922
- 北京这一段的天气好(天气好,心情好)散分,马上揭帖~
OR
UTF-8 -》GBK
int nLen = MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)str, -1, NULL,0);
WCHAR *wszUTF = new WCHAR[nLen+1];
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)str, -1, wszUTF, nLen);
nLen = WideCharToMultiByte(CP_UTF8, 0, wszUTF, -1, NULL, 0, NULL, NULL);
TCHAR *szUTF = new TCHAR[nLen+1];
WideCharToMultiByte(CP_UTF8, 0, wszUTF, -1, szUTF, nLen, NULL,NULL);delete[] szUTF;
delete[] wszUTF;