最近在編寫C語言程序,需要將JSON數據顯示在終端中。但是當JSON中含有中文時,輸出結果出現了亂碼。我調查了一下原因,并找到了解決辦法。
// JSON字符串示例 char* jsonString = "{ \"name\": \"張三\", \"age\": 20 }"; // 載入JSON數據并解析 cJSON* json = cJSON_Parse(jsonString); // 輸出JSON數據 char* printString = cJSON_Print(json); // 將輸出結果輸出到終端中 printf("JSON數據:%s\n", printString); // 釋放內存 free(printString); cJSON_Delete(json);
在使用cJSON庫顯示JSON數據時,亂碼問題的原因是因為在解析JSON數據時,沒有正確地將JSON字符串轉換為UTF-8編碼。此時,在輸出結果時,終端無法正確顯示中文字符,從而出現了亂碼。要解決這個問題,我們需要做兩件事情:首先將JSON字符串轉換為UTF-8編碼,然后再輸出結果。
// JSON字符串示例 char* jsonString = "{ \"name\": \"張三\", \"age\": 20 }"; // 轉換JSON字符串為UTF-8編碼 char* utf8String = cJSON_Print(json); // 將UTF-8編碼的字符串輸出到終端中 printf("JSON數據:%s\n", utf8String); // 釋放內存 free(utf8String); cJSON_Delete(json);
通過將JSON字符串轉換為UTF-8編碼,我們可以在終端中正確顯示中文字符。在使用cJSON庫時,要注意在輸出結果之前將JSON字符串轉換為UTF-8編碼,以避免出現亂碼問題。
上一篇vue學的稀爛
下一篇python 讀取第行