存盘的估计是utf-8或unicode编码
vc中正常的应该用gb2312比较合适

解决方案 »

  1.   

    //向文件写入内容
    StreamWriter x = new StreamWriter(FILE_NAME,true,System.Text.Encoding.Default);
    x.Write("source:综试仪class:2type:1content服务器失败!");
    x.Write("\r\n");
    x.Close();
      

  2.   

    string strE = "source:综试仪class:2type:1content服务器失败!";
    System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312");
    StreamWriter sw = new StreamWriter("c:\\123.log", false, enc, 1024);
    sw.Write(strE);
    sw.Flush();
    sw.Close();
      

  3.   

    sorry.写得文件格式要分开写
     string srr="综试仪";

    string srrr="务器失败!";
    string sr="Test1";
    string sr1=".txt";
    string sr2=string.Concat(sr,sr1);
    string TestFileName=this.dataDirPath+"\\"+sr2;
    string ar="source :";
    //string arr=ar;
    //BinaryFormatter formatter=new BinaryFormatter();
    FileStream fs=new FileStream(TestFileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);
        BinaryWriter bw=new BinaryWriter(fs);
    bw.Write("source:");
    bw.Write((srr.ToString()));
    bw.Write("class:");
    bw.Write("2");
    bw.Write("type:");
    bw.Write("1");
    bw.Write("content:");
    bw.Write(srrr);
    fs.Close();
      

  4.   

    你用什么进行文件写入的? FileStream还是StreamWriter?文本文件的写入应该用 StreamWriter的Write和 WriteLine方法。用FileStream会出现乱码,因为是二进制写入。
      

  5.   

    BinaryWriter会在每次Write前把要写的长度加在字符串前面而且这样写的也是utf-8编码的文件用
    BinaryWriter bw=new BinaryWriter(fs,System.Text.Encoding.GetEncoding("gb2312"));
    如果不需要每次加个字串长度, 则用StreamWriter
      

  6.   

    http://www.csdn.net/Develop/read_article.asp?id=20695
      

  7.   

    你那样写是可以的, 用ultraedit这种16进制编辑器打开看看吧自动加上的
      

  8.   

    加上这个也乱码??
    System.Text.Encoding.GetEncoding("gb2312")
    ansi里是:
    06 D7 DB CA D4 D2 C7  综试仪
    不会乱码(默认不加编码, 它是utf-8, 文件头加上了FF FE )
      

  9.   

    BinaryWriter bw=new BinaryWriter(fs,System.Text.Encoding.GetEncoding("gb2312"));