FileStream fs = new FileStream(path, FileMode.Create);
BinaryWriter sw = new BinaryWriter(fs);string str = "广州";
string str1 = "深圳";
sw.Write(str);
sw.Write(str1);
sw.Close();
fs.Close();我用UltraEdit查看生成的文件怎么是一些乱码,而不是这四个汉字呢???

解决方案 »

  1.   

    文本文件不是二进制文件,不要用 BinaryWriter 
    用StreamWriter sw = new StreamWriter(fs);
      

  2.   

    任何文件都是二进制文件...会出现乱码是你没有指定或指定了不匹配的文本编码...BinaryWriter sw = new BinaryWriter(fs);改成BinaryWriter sw = new BinaryWriter(fs,System.Text.Encoding.Default);//或其他指定编码...即可...
      

  3.   

    2正确,谢谢,不过又有一个小问题了,就是出来的是:
    00000000h:04 B9 E3 D6 DD 04 C9 EE DB DA             ;.广州.深圳
    那一点是怎么回事
      

  4.   

    不可见控制符...04是EOT(end of transm-ission),表示传输结束...
      

  5.   


    string path = "c://test.txt";
                FileStream fs = new FileStream(path,FileMode.Create);            StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
                sw.Write("广州");
                sw.Write("北京");            sw.Close();
                fs.Close();广州北京
      

  6.   

    BinaryWriter不是用来输出字符串的
      

  7.   

    纯文本直接用StreamWriter输出即可如果以二进制形式输出文本,可以用FileStream.Write
    输入参数为byte数组,文本的byte数组调用相应编码的Encoding.GetBytes方法得到
      

  8.   

    Encoding好像没有GetBytes这个方法哦,你可以在我上面那个例子改改给我看看吗??谢谢,我菜鸟一个,对这个不怎么懂