将文件路径转换成为UTF-8编码即可,具体实现如下:
int ANSIToUTF8(char* pszCode, char* UTF8code) { WCHAR Unicode[100]={0,}; char utf8[100]={0,}; // read char Lenth int nUnicodeSize = MultiByteToWideChar(CP_ACP, 0, pszCode, strlen(pszCode), Unicode, sizeof(Unicode)); memset(UTF8code, 0, nUnicodeSize+1); // read UTF-8 Lenth int nUTF8codeSize = WideCharToMultiByte(CP_UTF8, 0, Unicode, nUnicodeSize, UTF8code, sizeof(Unicode), NULL, NULL); // convert to UTF-8 MultiByteToWideChar(CP_UTF8, 0, utf8, nUTF8codeSize, Unicode, sizeof(Unicode)); UTF8code[nUTF8codeSize+1] = '\0'; return nUTF8codeSize; }
...
if (!(fmt->flags & AVFMT_NOFILE)) { char filename[256]; ANSIToUTF8((char*)encoderparam->outfilename, filename); if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) { return URL_OPEN_FAILD; } }
即可。