首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

应用BinaryWriter写文件第一个字符是乱码是什么原因

2012-08-24 
使用BinaryWriter写文件第一个字符是乱码是什么原因?C# code try{FileStream myFS new FileStream(filep

使用BinaryWriter写文件第一个字符是乱码是什么原因?

C# code
 try            {                FileStream myFS = new FileStream(filepath + @"\PatchMove.ini", FileMode.Create);                BinaryWriter myBW = new BinaryWriter(myFS);                myBW.Write(path);                myBW.Close();                myFS.Close();            }            catch (Exception) { }


代码是这样

写好的文件是这样的
第一个乱码到底怎么来的 想不通

[解决办法]
如果path是字符串,你应当使用StreamWriter来写入。BinaryWriter写入字符串是以UTF-7编码写入,并在字符串前添加长度前缀。那个特殊符号应该是长度前缀。
[解决办法]
BinaryWriter写进去的东西,StreamReader是认不出来的,只能用BinaryReader的对应方法来读取,要记住自己是用什么方式写的,然后在用BinaryReader读取时,指定好匹配的编码方式,就可以将原来的数据还原了。

BinaryWriter bw = new BinaryWriter(fs, Encoding.UTF32);
 BinaryWriter bw = new BinaryWriter(fs, Encoding.ASCII);
BinaryWriter bw=new BinaryWriter(fs,Encoding.GetEncoding("GB2312"));
这样试试。

热点排行