用c++函数实现写utf8文件(带bom)
char strValue[] = "{\"num\":0}";
FILE *pfd = fopen( JSONPATH, "w" );//会自动清空原有文件
char achUTF8[3]={0xEF, 0xBB, 0xBF};
fwrite(achUTF8, sizeof(1), sizeof(achUTF8), pfd);
//fwrite(strValue, 1, strlen(strValue), pfd);
fprintf(pfd, "%s", strValue);
fclose(pfd);
打开文件后的确是utf8的但是 {"num":0}之前有9个xCC,请xCC怎么产生的?怎么去掉
[解决办法]
楼上正解,fwrite(achUTF8, sizeof(1), sizeof(achUTF8), pfd)中,写入字节数为sizeof(1)*sizeof(achUTF8),sizeof(1)相当于sizeof(int),所以写入的字节数是12,多了9个xCC