文件名是乱码怎么打开这样的文件
乱码文件必须使用宽字符进行打开 比如 C 的 _wfopen( )
前提 ,读取文件名是必须是正确的编码,对,乱码也要有正确的编码、读取的文件名和文件显示的乱码一样。否则置换成宽字节照样打不开。
附上宽字节置换方法
int len = strlen(filename.getCharPointer());
char* srcbuff = new char[len + 1];
memset(srcbuff, 0, len + 1);
strcpy(srcbuff, filename.getCharPointer());
wchar_t* output = new wchar_t[len + 1];
memset(output, 0, sizeof(wchar_t)*(len + 1));//必须
mbstowcs(output, srcbuff, len + 1);
//转modes
wchar_t newmodels[10] = { 0 };
mbstowcs(newmodels, modes, strlen(modes));
//打开文件
file_ = _wfopen(output, newmodels);