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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马田杰 于 2013-2-3 09:22 编辑

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

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

streamreader.jpg

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

5 个回复

倒序浏览
产生乱码的原因(只有文本文件才会乱码):文本文件存储时采用的编码,与读取时采用的编码不一致,就会造成乱码问题。解决:采用统一的编码 就ok
你这里可以在new StreamReader的时候,在最后新增一个参数Encodring(枚举)选择一下编码类型,你这里的话可以这样写:StreamReader str = new StreamReader(this.openFileDialog1.FileName, Encoding.Default);   即采用本机默认编码进行读取。应该就没问题了

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
谢谢,这样就没问题了。
回复 使用道具 举报
刘明杰 发表于 2013-2-3 08:13
产生乱码的原因(只有文本文件才会乱码):文本文件存储时采用的编码,与读取时采用的编码不一致,就会造成 ...

谢谢,这样就没问题了
回复 使用道具 举报
实际上wind系统默认是gbk 记事本编码也是gbk  
回复 使用道具 举报
在itcast的视频里有讲到过类似的问题,是在定义”streamreader“时,好像是第四个重载,encoding ###,更具文件的编码在后面定义类型,多用Default  不对的地方请指正

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

212.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马