char *unicodeToUtf8(const WCHAR *zWideFilename) WCHAR *mbcsToUnicode(const char *zFilename)
来源:互联网 发布:网络推广是干什么的 编辑:程序博客网 时间:2024/05/19 18:43
char *unicodeToUtf8(const WCHAR *zWideFilename) { int nByte; char *zFilename; nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, 0, 0, 0, 0); zFilename = (char *)malloc(nByte); if(zFilename == 0) { return 0; } nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, zFilename, nByte, 0, 0); if( nByte == 0 ) { free(zFilename); zFilename = 0; } return zFilename; } WCHAR *mbcsToUnicode(const char *zFilename) { int nByte; WCHAR *zMbcsFilename; int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, NULL,0)*sizeof(WCHAR); zMbcsFilename = (WCHAR *)malloc(nByte*sizeof(zMbcsFilename[0])); if( zMbcsFilename==0 ) { return 0; } nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, zMbcsFilename, nByte); if(nByte == 0) { free(zMbcsFilename); zMbcsFilename = 0; } return zMbcsFilename; }