.Net Core 指定编码格式的问题

我们在读取txt文件时,如果文件格式不是utf8,则获取的中文会乱码,所以要么另存文件为utf8格式,要么使用和文件相同的编码来读取。

如果文件为utf8,则:

            //一种
            StreamReader sr = new StreamReader(@"C:\Users\LIKUI\Desktop\密码.txt", Encoding.Default);
            var reader_Str = sr.ReadToEnd();

            //第二种
            string upStr = File.ReadAllText(@"C:\Users\LIKUI\Desktop\密码.txt", Encoding.Default);
           
            //第三种
            FileStream fs = File.OpenRead(@"C:\Users\LIKUI\Desktop\密码.txt");
            int num = fs.Read(bt,0,bt.Length);
            var str = Encoding.Default.GetString(bt);
            Console.WriteLine(str);

用Encoding.UTF8和Encoding.UTF8.GetString(bt)均可以。

如果不修改文件编码,则需要指定格式进行读取

 直接报错,需要添加NuGet程序包 System.Text.Encoding.CodePages

//注册编码(放在将要指定编码,进行文件解析前)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

猜你喜欢

转载自www.cnblogs.com/likui-bookHouse/p/11990316.html
今日推荐