2009-08-24 48 views
0

我得到了下一个问题。 我有一个二进制文件,我把它写入系统的重要数据。 其中一个字段是时间,我使用DateTime.Now.ToString(“HHmmssffffff),格式为微秒。这个数据(在字符串中)我转换(ToCahrArray)(并在调试中检查它是好的) ,它包含的时间有效直到微秒 然后我写它并将其刷新到文件中当用PsPad打开它将二进制转换为Ascii时,我发现数据在这个字段中被破坏了,而其余的该消息是罚款在C#中打印二进制文件的时间.net

代码:。

void Write(string strData) { 
    char[] cD = strData.ToCharArry(); 
    bw.Write(c); //br is from type of BinaryWriter 
    bw.Flush(); 
} 
+0

为什么不将文本数据写入文本文件? – 2009-08-24 16:35:33

回答

5

你在Unicode字符写出的字节,而不是ASCII字节如果你想要的Ascii字节,您应该将其更改为使用Encoding类。

byte[] data = Encoding.ASCII.GetBytes(strData); 
bw.Write(data); 

我强烈建议您阅读Joel Spolsky's article on character sets and encoding。它可以帮助您了解当前的代码无法正常工作。

+0

+1为参考Joel的文章 - 它应该是必读! – JMarsch 2009-08-24 16:39:44