首页 新闻 会员 周边 捐助

通常用InputStream读取txt文本文件会出现乱码,有没有办法让其正确输出(不能用转换流,只能自定义缓冲区)

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-08-27 02:03

如题。。。。。。。。。。。。。。。。。。。。。。。

通常用InputStream读取txt文本文件会出现乱码,有没有办法让其正确输出(不能用转换流,只能自定义缓冲区)

zhangpengpeng的主页 zhangpengpeng | 初学一级 | 园豆:114
提问于:2014-08-19 18:25
< >
分享
所有回答(2)
0

这种,一般来说是编码造成的吧...

幻天芒 | 园豆:37207 (高人七级) | 2014-08-20 00:06
0

任何stream读取的数据都是返回一个字节流,而所谓的字符串文本都是对字节流的一个转换。

要正确转换内容,必须知道内容的字符编码格式。

一般来说,使用默认的能解决问题。

.net的默认编码是UTF-8(不排除人为修改的可能)。

你可以确认对方输出的流是什么编码(文本文件是用什么编码保存的),如果能这样,自然就简单了。

如果不确定,你可以分别尝试使utf-8、gb2312、gbk等编码读取看。

获取编码的方法:utf-8有自带的System.Text.Encoding.TextEncoding.Utf8(也有很多别的,可以多尝试下)。

如果gb2312、gbk,则可以使用静态方法:System.Text.Encoding.TextEncoding.GetEncodingxxx("gb2312")

这里我把GetEncoding方法名忘记了,你自己修正下。

519740105 | 园豆:5810 (大侠五级) | 2014-08-20 08:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册