最近在使用c語言讀取json數(shù)據(jù)時(shí)遇到了一個(gè)問題,就是讀取的結(jié)果出現(xiàn)了亂碼。我認(rèn)真查看了一下代碼,于是發(fā)現(xiàn)了問題的所在。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> int main(void) { FILE *fp; char *data; long len; fp = fopen("test.json", "r"); fseek(fp, 0, SEEK_END); len = ftell(fp); fseek(fp, 0, SEEK_SET); data = (char*)malloc(len * sizeof(char)); fread(data, 1, len, fp); cJSON *root = cJSON_Parse(data); printf("%s\n", cJSON_Print(root)); cJSON_Delete(root); free(data); return 0; }
原因是在讀取json文件時(shí)沒有按照正確的編碼方式讀取,導(dǎo)致了亂碼。正確的方式應(yīng)該是在fopen處添加編碼方式。
fp = fopen("test.json", "r, ccs=UTF-8");
這樣,我們就可以完美地讀取json數(shù)據(jù)啦!
上一篇vue bar 電話
下一篇c 讀json格式文件