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

Bor*_*kov 0 .net c#

我遇到了下一个问题.我有一个二进制文件,我写入系统的重要数据.其中一个字段是时间,我使用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();
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 5

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

byte[] data = Encoding.ASCII.GetBytes(strData);
bw.Write(data);
Run Code Online (Sandbox Code Playgroud)

我强烈建议阅读Joel Spolsky关于字符集和编码的文章.它可以帮助您了解您当前的代码无法正常工作.