A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯茂绵 中级黑马   /  2012-7-17 16:41  /  1186 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何有效的使用C#读取文件 及如何解决中文乱码问题

4 个回复

倒序浏览
C#提供的类库能够轻松实现对文件的操作,其实稍微改动一下即可如何解决中文乱码问题:
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//用该编码创建 StreamReader
回复 使用道具 举报
本帖最后由 罗京雨 于 2012-7-17 18:58 编辑

Windows 2000之后的操作系统在文件处理时默认编码采用Unicode,所以.Net 的文件默认编码也是Unicode。除非另外指定,StreamReader 的默认编码为 Unicode,而不是当前系统的 ANSI 代码页。但是文档大部分还是以ANSI编码储存,中文文本使用的是gb2312,所以才造成中文乱码的状况,也就是说在读取文本的时候要指定编码格式。

直接用System.Text.Encoding.Default 告诉StreamReader 目前操作系统的编码即可。
StreamReader reader = new StreamReader(FileName, System.Text.Encoding.Default)

回复 使用道具 举报
中文的话用   Encoding.GetEncoding("GB2312")
回复 使用道具 举报
在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。
只需要在读取出来的时候StreamReader加一个编码就可以了。代码如下:
using System.IO;
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//fileName为文件的绝对路径
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马