FileStream读取文件时出现乱码

qin1826681768 2012-05-12 10:23:20
做一个记事本程序时用filestream读取汉字时出现乱码,而读取字符时不出错,代码如下,求高手帮忙。

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
byte[] b = new byte[500];
OpenFileDialog fi = new OpenFileDialog();
fi.InitialDirectory = @"d:\";
fi.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
fi.FilterIndex = 1;
fi.RestoreDirectory = true;
if (fi.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(fi.FileName, FileMode.Open);
fs.Seek(0, SeekOrigin.Begin);
fs.Read(b, 0, 500);
fs.Close();
string str = Encoding.UTF8.GetString(b);
textBox1.Text = str;
}
else
{
textBox1.Text = "";
}
}
...全文
541 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一剑枯荣 2014-12-05
  • 打赏
  • 举报
回复
你要先确定你的文件的编码方式,否则用UTF-8编译就可能乱码
「已注销」 2012-05-13
  • 打赏
  • 举报
回复
谢谢拉
test2050 2012-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
我靠 utf8都不行 gb2312就行吗
[/Quote]
你都没理解utf8、
gb2312是怎么回事。要看你读取的内容本身是什么编码的。是utf8就用uft8.是gb2312就得用gb2312.
caoyang4807742 2012-05-13
  • 打赏
  • 举报
回复
你需要监视一下那里出现了乱码。然后再进行处理
rayyu1989 2012-05-13
  • 打赏
  • 举报
回复
我靠 人才啊[Quote=引用 2 楼 的回复:]

我靠 utf8都不行 gb2312就行吗
[/Quote]
stonespace 2012-05-13
  • 打赏
  • 举报
回复
如果是windows的记事本生成的txt文件,一般都是gb2312或者gbk的,很少生成utf8编码格式,
stonespace 2012-05-13
  • 打赏
  • 举报
回复
建议用StreamReader读取,会帮你自动进行编码转换,当然要指定Encoding,不过如4L所说,首先要知道文件是什么类型编码,
muwan 2012-05-13
  • 打赏
  • 举报
回复
可以试试Encoding.Default
EnForGrass 2012-05-12
  • 打赏
  • 举报
回复
试试gb2312

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧