投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-07 我要评论 这篇文章主要介绍了VC下实现fopen支持中文的方法,需要的朋友可以参考下 VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | boolUTF8ToUnicode(constchar* UTF8, wchar_t* strUnicode)
{
DWORDdwUnicodeLen;
TCHAR*pwText;
dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0);
pwText = newTCHAR[dwUnicodeLen];
if(!pwText)
{
returnfalse;
}
MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen);
wcscpy(strUnicode, pwText);
delete[]pwText;
returntrue;
}
|
这个函数的用法如下: 1 2 3 4 | wchar_tstrUnicode[260];
UTF8ToUnicode(streamName, strUnicode);
FILE* fid = _wfopen(strUnicode, L"rb");
|
上述函数仍有不够完善之处,如参数strUnicode的长度不能灵活设置,读者可根据自身需求进一步加以完善! |