C#中StreamReader读取中文出现乱码
转自yhrun原文C#中StreamReader读取中文出现乱码
原因是自Windows 2000之后的操作系统在文件处理时默认编码采用Unicode
所以.NET文件的默认编码也是Unicode。除非另外指定,StreamReader的默认编码为Unicode,
而不是当前系统的ANSI代码页。但是文档大部分还是以ANSI编码存储,中文文本使用的是GB2312,所以才造成中文乱码
所以在读取文本的时候要指定编码格式。
使用System.Text.Encoding.Defaul告诉StreamReader采用目前操作系统的编码即可。
如:
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();
你们的评论、反馈,及对你们有所用,是我整理材料和博文写作的最大的鼓励和唯一动力。欢迎讨论和关注!
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。