最近在使用c#開發(fā)過程中,遇到了json讀取亂碼問題,很是頭疼。在網上查閱了一些資料,終于解決了這個問題,現在與大家分享一下這個問題的解決方法。
首先,我們需要了解一下json的編碼方式。不同的編碼方式在讀取時會存在亂碼的問題,因此我們需要主要選擇對應的編碼方式。針對c#而言,有以下幾種編碼方式:
Encoding.ASCII Encoding.UTF8 Encoding.Unicode Encoding.Default
在使用Newtonsoft.Json進行解析時,默認的編碼為UTF8,如果讀取的文件的編碼不是UTF8,則會出現亂碼的情況。因此,我們可以手動指定編碼方式。下面給出示例代碼:
using System.IO; using System.Text; using Newtonsoft.Json; ... string filePath = "data.json"; StreamReader sr = new StreamReader(filePath, Encoding.Default); JsonReader reader = new JsonTextReader(sr); JsonSerializer serializer = new JsonSerializer(); var data= serializer.Deserialize<List<Dictionary<string, string>>>(reader); sr.Close();
在上述代碼中,我們手動指定了編碼方式為默認編碼(Encoding.Default)。讀取文件時使用StreamReader,將編碼方式指定為默認編碼,這樣就可以避免出現亂碼的情況。
綜上所述,c#讀取json的亂碼問題可以通過手動指定編碼方式來解決。在具體使用過程中,根據實際情況選擇對應的編碼方式即可。