黑马程序员技术交流社区
标题:
为什么读到的是乱码呢
[打印本页]
作者:
782385854
时间:
2013-11-2 11:30
标题:
为什么读到的是乱码呢
本帖最后由 782385854 于 2013-11-2 13:27 编辑
[img][/img]
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();//打开一个对话框
ofd.Title = "打开文件"; //设置对话框的标题
ofd.Filter = "文本文件|*.txt|所有文件|*。*";
if (ofd.ShowDialog() == DialogResult.OK)
{
//用户点击了打开
//textBox1.Text = File.ReadAllLines(ofd.FileName);
//第一步声明一个文件流
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
//创建读写器
StreamReader sr = new StreamReader(fs);
//读取一行 sr.ReadLine();
//读取到最后
textBox1.Text = sr.ReadToEnd();
//关闭读取器
fs.Close();
sr.Close();
}
}
复制代码
V~4CVG4NL1}WY1%3UQGQ2GK.jpg
(66.23 KB, 下载次数: 37)
下载附件
2013-11-2 11:29 上传
作者:
dashanren
时间:
2013-11-2 13:01
注意 StreamReader类的解释是 使其以一种特定的编码从字节流中读取字符。你没有选定编码方式应为new StreamReader(fs,Encoding.Default ); 还有“所有文件|*。*";”句号改为点号。
作者:
蒋东东
时间:
2013-11-2 13:16
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));初始化该流需要指定字符编码,中文系统下默认是gb2312。也可以用Encoding.Default,这样你里面的中文就不会乱码了。
作者:
782385854
时间:
2013-11-2 13:27
谢谢啦,改好了
作者:
张小康
时间:
2013-11-2 16:20
可以在方法中定义字符的编码,
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, Encoding.Default);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2