黑马程序员技术交流社区

标题: 使用streamReader类读取txt文件中的汉字时出现乱码。 [打印本页]

作者: 黑马田杰    时间: 2013-2-3 00:19
标题: 使用streamReader类读取txt文件中的汉字时出现乱码。
本帖最后由 黑马田杰 于 2013-2-3 09:22 编辑

如下图,使用StreamReader类读取txt文件中的汉字(手动打上去的)时出现乱码,但如果用StreamWriter类把汉字写到txt文件里面再用streamReader类读取则正常,这是怎么回事,该怎么解决?

streamreader.jpg (85.91 KB, 下载次数: 166)

streamreader.jpg

作者: 刘明杰    时间: 2013-2-3 08:13
产生乱码的原因(只有文本文件才会乱码):文本文件存储时采用的编码,与读取时采用的编码不一致,就会造成乱码问题。解决:采用统一的编码 就ok
你这里可以在new StreamReader的时候,在最后新增一个参数Encodring(枚举)选择一下编码类型,你这里的话可以这样写:StreamReader str = new StreamReader(this.openFileDialog1.FileName, Encoding.Default);   即采用本机默认编码进行读取。应该就没问题了
作者: 黑马田杰    时间: 2013-2-3 09:21
谢谢,这样就没问题了。
作者: 黑马田杰    时间: 2013-2-3 09:21
刘明杰 发表于 2013-2-3 08:13
产生乱码的原因(只有文本文件才会乱码):文本文件存储时采用的编码,与读取时采用的编码不一致,就会造成 ...

谢谢,这样就没问题了
作者: 杨杨    时间: 2013-2-4 10:17
实际上wind系统默认是gbk 记事本编码也是gbk  
作者: 汪振    时间: 2013-2-20 12:59
在itcast的视频里有讲到过类似的问题,是在定义”streamreader“时,好像是第四个重载,encoding ###,更具文件的编码在后面定义类型,多用Default  不对的地方请指正

212.jpg (19.07 KB, 下载次数: 166)

212.jpg





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