转自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
,如需转载请自行联系原作者