json.net中文亂碼問題


在使用newtonSoft的Json做讀取json配置文件信息時,發現會出現中文亂碼,出現一堆的問號:

using Newtonsoft.Json;
using System;
using System.IO;
using System.Text;

namespace CSJsonTest
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(@"E:\測試.json");
            VCUPinConfig cfg= JsonConvert.DeserializeObject<VCUPinConfig>(sr.ReadToEnd());
            sr.Close();
            Console.WriteLine(cfg.Project);
            Console.WriteLine(cfg.CreatedDate);
            Console.WriteLine(cfg.Version);
            Console.WriteLine(cfg.Author);
            foreach (string s in cfg.LSD)
            {
                Console.WriteLine(s);
            }

            foreach (string s in cfg.HSD)
            {
                Console.WriteLine(s);
            }
            Console.Read();
        }
    }

    public class VCUPinConfig
    {
        public string Project { get; set; }
        public DateTime CreatedDate { get; set; }
        public string Version { get; set; }
        public string Author { get; set; }
        
        //低邊驅動
        public string[] LSD { get; set; }
        
        //高邊驅動
        public string[] HSD { get; set; }

    }
}

  

ASCII都正常,但是中文不正常。據說是Json采用的是UTF8,而C#使用的是Unicode。

怎么搞咧?

  把這一行:

StreamReader sr = new StreamReader(@"E:\測試.json");

  修改為:

StreamReader sr = new StreamReader(@"E:\測試.json",Encoding.Default);

  測試就OK了:

所以,絕大部分的亂碼,本質上都是編碼和解碼方式不同造成的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM