黑马程序员技术交流社区

标题: 读取及乱码问题 [打印本页]

作者: 侯茂绵    时间: 2012-7-17 16:41
标题: 读取及乱码问题
如何有效的使用C#读取文件 及如何解决中文乱码问题
作者: 许庭洲    时间: 2012-7-17 17:11
C#提供的类库能够轻松实现对文件的操作,其实稍微改动一下即可如何解决中文乱码问题:
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//用该编码创建 StreamReader
作者: 京鱼龙    时间: 2012-7-17 18:54
本帖最后由 罗京雨 于 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)


作者: 许楠    时间: 2012-7-17 21:19
中文的话用   Encoding.GetEncoding("GB2312")
作者: 冯大卫    时间: 2012-7-17 21:47
在对文本文件进行读取的时候,如果其中包含了中文,可能就会有乱码的出现,解决方法很简单。
只需要在读取出来的时候StreamReader加一个编码就可以了。代码如下:
using System.IO;
StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));//fileName为文件的绝对路径





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2