C#中StreamReader读取中文出现乱码

本文介绍了解决C#中使用StreamReader读取中文文件时出现乱码的问题。主要原因是默认编码为Unicode,而中文文本通常使用GB2312编码。通过指定正确的编码格式,可以避免乱码现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自yhrun原文C#中StreamReader读取中文出现乱码

原因是自Windows 2000之后的操作系统在文件处理时默认编码采用Unicode

所以.NET文件的默认编码也是Unicode。除非另外指定,StreamReader的默认编码为Unicode,

而不是当前系统的ANSI代码页。但是文档大部分还是以ANSI编码存储,中文文本使用的是GB2312,所以才造成中文乱码

所以在读取文本的时候要指定编码格式。

使用System.Text.Encoding.Defaul告诉StreamReader采用目前操作系统的编码即可。

如:

1
2
3
4
5
6
7
8
9
FileStream fs =  new  FileStream( "1.txt" , FileMode.Open, FileAccess.Read); 
                StreamReader read =  new  StreamReader(fs, Encoding.Default); 
                string  str; 
                while  (read.Peek() != -1) 
               
                    str = read.ReadLine(); 
                    Console.WriteLine(str); 
               
                read.Close(); 

 


 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6403274.html ,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值