StreamReader
//通过打开对话框,窗体的FileName属性获取要打开文件的文件名
FileName = openFileDialog1.FileName;
//创建从字符串进行读取的StreamReader对象
//StreamReader sr = File.OpenText(FileName);
StreamReader sr = new StreamReader(FileName, System.Text.Encoding.Default);
string str = "";
while ((str = sr.ReadLine())!=null)
{
//将读出的字符串在richTextBox1中显示
this.richTextBox1.Text += str;
}
为什么运行上述代码读取文件时,会出现乱码? StreamReader --------------------编程问答-------------------- 文字存储的时候都是变成字节的,打开的时候再转回来,但是转换的规则不是只有一种。
可以换 System.Text.Encoding.UTF8 试试。 --------------------编程问答-------------------- 说过啦,也是不行!还是出现乱码 --------------------编程问答-------------------- 你用工具打开那文件看一下是什么编码的,然后再设置System.Text.Encoding.Default为相应的编码,比如
System.Text.Encoding.GetEncoding("GB2312"); --------------------编程问答--------------------
根据追踪是GB2312可是我改成System.Text.Encoding.GetEncoding("GB2312")还是出现乱码!
--------------------编程问答-------------------- 你用记事本打开是否乱码? --------------------编程问答--------------------
是的,为什么啊? --------------------编程问答-------------------- 我的是word文档 --------------------编程问答-------------------- 莫急躁=。=
记事本打开是乱码,那就说明文件本身就是乱码的。 --------------------编程问答--------------------
莫急躁=。=
你用记事本打开是否乱码?
是的,为什么啊?
记事本打开是乱码,那就说明文件本身就是乱码的。
可是我创建的是Word文档,貌似记事本除了txt文档,打开其他文档都是乱码吧! --------------------编程问答-------------------- 写字板乱码么? --------------------编程问答--------------------
写字板乱码么?
不是乱码,能读出来! --------------------编程问答--------------------
写字板乱码么?
不是乱码,能读出来!
那你试试用office组件吧
写字板乱码么?
不是乱码,能读出来!
什么意思? --------------------编程问答-------------------- try add the below code to web.config
<globalization
requestencoding="gb2312"
responseencoding="gb2312"
/> --------------------编程问答-------------------- 是不是文档中有什么不支持的格式,先把文件转码 或者office文档向下兼容保存一下 再用流来读取 --------------------编程问答-------------------- 我试了.doc文件的读取,utf8是可以的。
string filename = "C:/Documents and Settings/Administrator/桌面/Asdf.doc";--------------------编程问答-------------------- Word文档不能直接用文件流读取,可以使用Office的API读取文件! --------------------编程问答-------------------- System.Text.Encoding.Default 是不对的,最近也碰到过,最好使用 UTF8,或者 GB2312 之类的编码Default 多半是 ASCII,所以会乱码。 --------------------编程问答-------------------- Word文档和rtf并不相同,word比rtf可是强大,支持的格式多,richTextBox1控件只能打开f=rtf格式,word的因格式没有那么丰富就会乱码,你看一在网上下个rtf格式的可以正常打开,如果想打开word可以将word嵌入到窗口中 --------------------编程问答-------------------- 读word文件需要用到特定的dll的,不然你读取出来会乱码的不想读txt文件那可以直接读取,去下个word的dll来操作吧,参考http://blog.csdn.net/yezi2413/article/details/3132074 --------------------编程问答-------------------- 你的文档保存的时候 是用什么编码编码方式保存的? --------------------编程问答-------------------- word包含许多格式信息,当然不能直接用记事本或是字符串直接显示啊。
StreamReader sr = new StreamReader(filename, System.Text.Encoding.UTF8);
string str = "";
while ((str = sr.ReadLine())!=null)
{
//将读出的字符串在richTextBox1中显示
this.richTextBox1.Text += str;
}
补充:.NET技术 , C#