我刚学C#三四天哦,以前在学校的时候只接触了一点C,所以问出来的问题很傻,msdn看的我一头雾水,实在想不出为什么,请各位大侠不吝赐教啊,小弟感激不尽!

解决方案 »

  1.   

    保存到文件之前试试这么做, 把里面的换行符替换一下, 像这样:str = str.Replace("\n", "\r\n");
      

  2.   

    你把 
    StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.Encoding.GetEncoding("gb2312"));改为
    StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.UTF8Encoding.Default);
    看看
      

  3.   

    main_body = main_body.Replace("\n", "\r\n");
    temp_sw.Write(main_body);
      

  4.   

    //帮楼主写了一下
    using System;
    using System.IO;class Class1
    {
    static void Main()
    {
    L6: Console.WriteLine("请输入含有中文的文本文件(gb2312):");
    string MAIL_BODY_ORIGINAL_PATH = Console.ReadLine().Trim();
    if(!File.Exists(MAIL_BODY_ORIGINAL_PATH)) 

    Console.WriteLine("文件不存在!\n"); 
    goto L6 ;
    } Console.WriteLine("正在载入文本文件。");
    StreamReader body_file_sr = new StreamReader(MAIL_BODY_ORIGINAL_PATH,System.Text.Encoding.GetEncoding("gb2312"));
    string main_body = body_file_sr.ReadToEnd();
    body_file_sr.Close();
    Console.WriteLine("载入成功!\n"); L7: Console.WriteLine("请输入输出文件名:");
    string OUTPUT_FILE = Console.ReadLine().Trim();
    if(OUTPUT_FILE.Length == 0) 
    {
    Console.WriteLine("输出文件名不能为空!\n"); 
    goto L7 ;
    } //在字符串main_body末尾添加长度不等的16进制随机字符串
    Random rnd_num = new Random();
    int ii = rnd_num.Next(1,300);
    for ( int i=0 ; i <= ii ; i++ )
    {
    switch( rnd_num.Next(1,8) )
    {
    case 1 :{ main_body = main_body + rnd_num.Next(0xa,0xf).ToString("x") + "\r\n"; break ; }
    case 2 :{ main_body = main_body + rnd_num.Next(0xaa,0xff).ToString("x") + "\r\n"; break ; }
    case 3 :{ main_body = main_body + rnd_num.Next(0xaaa,0xfff).ToString("x") + "\r\n"; break ; }
    case 4 :{ main_body = main_body + rnd_num.Next(0xaaaa,0xffff).ToString("x") + "\r\n"; break ; }
    case 5 :{ main_body = main_body + rnd_num.Next(0xaaaaa,0xfffff).ToString("x") + "\r\n"; break ; }
    case 6 :{ main_body = main_body + rnd_num.Next(0xaaaaaa,0xffffff).ToString("x") + "\r\n"; break ; }
    case 7 :{ main_body = main_body + rnd_num.Next(0xaaaaaaa,0xfffffff).ToString("x") + "\r\n"; break ; }
    default : { main_body = main_body + "\r\n" ; break ; }
    }
    } //输出到控制台屏幕正常
    Console.WriteLine(main_body); //输出到文件,用notepad打开就发现所有的换行符都错啦!
    //全部变成了一个一个黑色方块!:(

    FileStream temp_fs = File.Create( OUTPUT_FILE) ;
    StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.Encoding.GetEncoding("gb2312"));
    temp_sw.Write(main_body);
    temp_sw.Close();
    temp_fs.Close();
    Console.Write("完成输出到文件!\n输入任意字符关闭!");
    Console.ReadLine();
    }
    }
      

  5.   

    把 
    StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.Encoding.GetEncoding("gb2312"));改为
    StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.UTF8Encoding.Default);
     我试过,不行但是 showtimenow(景) ; coolsniper(coolsniper) ;zhzuo(秋枫) 
    的方法可以
    这究竟是为什么呢?
      

  6.   

    \r\n 和 \n 有什么不同吗?
      

  7.   

    我也遇到过这个情况,但是也不知道是为什么,我是将"\n"改成"\r\x0A"才可以实现换行的,不知道为什么用"\r\n"还是不行.
    http://expert.csdn.net/Expert/topic/2827/2827333.xml?temp=.9382135