博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中StreamReader读取中文出现乱码
阅读量:4683 次
发布时间:2019-06-09

本文共 694 字,大约阅读时间需要 2 分钟。

转自原文

原因是自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();

 

 

转载于:https://www.cnblogs.com/arxive/p/6403274.html

你可能感兴趣的文章
堆和栈的差别(转过无数次的文章)
查看>>
STL之Map的运用
查看>>
Linux常用命令
查看>>
JAVA多线程Thread VS Runnable详解
查看>>
springboot分布式数据源(Mysql)
查看>>
python安装numpy模块
查看>>
Lambda
查看>>
Java对byte数组压缩 解压缩 (zip,gzip,bzip2,jzlib)
查看>>
UDP用户数据报协议
查看>>
无聊到什么都不想做,只想写篇博客...
查看>>
Node实现websocket聊天室
查看>>
一天搞定CSS: 浮动(float)及文档流--10
查看>>
MSSQL游标和Fetch
查看>>
FFT最新卡常研究
查看>>
linux字符集的查看及修改
查看>>
php函数serialize()与unserialize()
查看>>
java时间操作三部曲之java.util.Calendar
查看>>
4_Selenium框架封装
查看>>
Oracle定义varchar2()类型存储汉字的长度问题
查看>>
[网络流24题#9] [cogs734] 方格取数 [网络流,最大流最小割]
查看>>