1.纯c读文件
int Utf2char(char *src, char** ret) { int nret; WCHAR *pwchar = 0; int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; nret = MultiByteToWideChar(CP_UTF8, 0, src, -1, NULL, 0); pwchar = (WCHAR *)malloc(sizeof(WCHAR)*nret); nret = MultiByteToWideChar(CP_UTF8, 0, src, -1, pwchar, nret); nret = WideCharToMultiByte(codepage, 0, pwchar, -1, 0, 0, 0, 0); *ret = (char*)malloc(nret + 1); nret = WideCharToMultiByte(codepage, 0, pwchar, -1, *ret, nret, 0, 0); free(pwchar); return nret; }
FILE *pFile = NULL; pFile = fopen("D:\codeOneSelf\****\Debug\34.txt", "rb+"); if (!pFile) { return -1; } fseek(pFile, 0, SEEK_END); int len = ftell(pFile); fseek(pFile, 0, SEEK_SET); char *buf = NULL; buf = (char *)malloc(len + 1); memset(buf, 0x00, len + 1); fread(buf, len, 1, pFile); fclose(pFile); char *gb2312 = NULL; gb2312 = (char *)malloc(BUFFER_LEN * 20); memset(gb2312, 0x00, BUFFER_LEN * 20); Utf2char(buf, &gb2312); free(buf); free(gb2312);