VC下实现fopen支持中文的方法

作者:kgmucom   在线用户:2
风之恋奇迹私服技术网是一家提供最新互联网编程技术网站

vc fopen函数的第一个参数是const char*,遇到中文文件名时很难处理,如果中文是utf8编码,我们也可以用以下代码将其转换为Unicode,然后用wfopen函数打开文件,下面一起跟着爱站技术频道小编来了解吧!

代码如下:

bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode)
{
 DWORD dwUnicodeLen;    //转换后Unicode的长度
 TCHAR *pwText;      //保存Unicode的指针
// wchar_t* strUnicode;    //返回值
 //获得转换后的长度,并分配内存
 dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0);
 pwText = new TCHAR[dwUnicodeLen];
 if (!pwText)
 {
 return false;
 }
 //转为Unicode
 MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen);
 //转为CString
 wcscpy(strUnicode, pwText);
 //清除内存
 delete []pwText;
 return true;
}

这个函数的用法如下:

wchar_t strUnicode[260];
UTF8ToUnicode(streamName, strUnicode);
FILE* fid = _wfopen(strUnicode, L"rb");
// FILE* fid = fopen(streamName, "rb");//此为原来的方法,遇到中文不能正确打开

上述是关于VC下实现fopen支持中文的方法,相信大家都了解了,其实很多的功能还不完善,如参数结构码长度设置不灵活,读者可根据自身需要进一步完善!

提供最全面的奇迹sf开服版本和最新的奇迹私服开服技术信息,奇迹私服文库让每一位奇迹私服玩家找到自己需要的版本技术文章

上一篇:如何优雅地使用c语言编写爬虫的方法

下一篇:详解C++中拷贝构造函数的应用

请发表您的评论