C#读写文件汉字乱码问题急?

zxhread 2004-10-31 09:29:23
我用 StreamReader 和 StreamWriter 把一个文本文件中的内容读出写入另一个文本文件
发现汉字都成了乱码,不知道怎样解决.程序大体如下
FileStream fs1 = new FileStream('file1.txt', , );
FileStream fs2 = new FileStream('file2.txt', , );
StreamReader sr = new StreamReader(fs1);
StreamWriter sw = new StreamWriter(fs2);
String line;
line = sr.ReadLine();
sw.WriteLine(line);

这样写入的汉字都有问题了。

...全文
754 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhread 2004-10-31
  • 打赏
  • 举报
回复
如果这一行很大呢,比如说二进制的文件。文件很大无法区分行,他会读到末尾吗?
java中流有readLine(byte[],0,byte[].length)这个方法 如果一行很大就只读byte[].length 这么多。
Firestone2003 2004-10-31
  • 打赏
  • 举报
回复
楼上的方法可行
bubugao 2004-10-31
  • 打赏
  • 举报
回复
StreamReader s = new StreamReader(fs,System.Text.Encoding.GetEncoding("GB2312"));
bitsbird 2004-10-31
  • 打赏
  • 举报
回复
line = sr.ReadLine();是读取一行
line = sr.ReadToEnd();是读完
zxhread 2004-10-31
  • 打赏
  • 举报
回复
line = sr.ReadLine(); 这个语句返回的字符串长度是不是有限制.
如果在这个文件流中 有个巨大的行sr.ReadLine是返回全部还是 收String大小限制.
thinboyxp 2004-10-31
  • 打赏
  • 举报
回复
StreamReader s = new StreamReader(fs,System.Text.Encoding.GetEncoding("GB2312"));
这样初始化StreamReader试试。
大雨仔 2004-10-31
  • 打赏
  • 举报
回复
自己多试一下
ag1978 2004-10-31
  • 打赏
  • 举报
回复
读写都是一样的需要指定。自己试一下吧。
trnbo 2004-10-31
  • 打赏
  • 举报
回复
StreamReader myTXT=new StreamReader(yourPath,Encoding.Default);
ag1978 2004-10-31
  • 打赏
  • 举报
回复
System.IO.StreamReader sr =new System.IO.StreamReader(fs1,System.Text.Encoding.Default)

zxhread 2004-10-31
  • 打赏
  • 举报
回复
请问具体怎么个用法?
ag1978 2004-10-31
  • 打赏
  • 举报
回复
需要指定编码类型,用System.Text.Encoding.Default就可以了。

110,566

社区成员

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

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

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