使用 cJSON 也有三四年了,之前一直沒注意到 cJSON 對 json 數據的編碼有什么要求。
我有時用來處理 gbk 編碼,有時處理 utf-8 編碼,沒遇到什么問題。
直到前不久,才發現一個問題。
這個 json 數據中有一個漢字:'黒'
json 數據本身是 gbk 編碼,在使用 cJSON 解析后,並沒有按預期輸出一個 '黒', 輸出了一個問號 '?'
然后到網上查了一下,看到官網的提示,原來 cJSON 只能處理 utf-8 編碼的數據。
為什么我在解析很多別的漢字的時候,使用 gbk 編碼沒有問題呢?
網上也看到有相關的說明,關於 cJSON 的解析原理,我也不想多說什么了。
算了,以后只需記住一點,提交給 cJSON處理的數據一定要是 utf-8 編碼就行了。