首页 > 编程 > C > 正文

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

2020-02-24 14:29:08
字体:
来源:转载
供稿:网友

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支持中文的方法,相信大家都了解了,其实很多的功能还不完善,如参数结构码长度设置不灵活,读者可根据自身需要进一步完善!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选