在C#.net中打印二进制文件的时间

时间:2009-08-24 16:24:51

标签: c# .net

我遇到了下一个问题。 我有一个二进制文件,我写入系统的重要数据。 其中一个字段是时间,我使用DateTime.Now.ToString(“HHmmssffffff”),格式为微秒。这个数据(在字符串中)我转换(ToCahrArray)(并在调试中检查它很好),它包括有效时间直到微秒。 然后我写它并将其刷新到文件。当用PsPad打开它将二进制文件转换为Ascii时,我看到数据在这个字段中被破坏了,而另一个数据则被破坏了,但消息的其余部分都很好。

代码:

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

1 个答案:

答案 0 :(得分:5)

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

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

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