文件名是乱码怎么打开这样的文件

文件名是乱码怎么打开这样的文件

 

 

乱码文件必须使用宽字符进行打开 比如 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);

你可能感兴趣的:(Qt,C++)