大家用过UltraEdit吧.
用他打开一个二进制文件。
左边显示的是16进值 ,右边显示的是ASCII码。我想自己做一个,但是显示出的ASCII码和用UltraEdit看的ASCII码不一样。我的方法是:
System.IO.Stream stream =System.IO.File.Open(fileName[0], System.IO.FileMode.Open);
byte[] ba = new byte[128];
stream.Read(ba, 0, ba.Length);
stream.Close();
this.textBox1.Text = System.Text.Encoding.Default.GetString(ba);
请问为什么我的textBox1中显示的ASCII和用UltraEdit看的不一样呢。

解决方案 »

  1.   

    其实用记事本打开也是一样的。比如一个zip文件用记事本打开大概是这样的:
    PK    !R?諑~\   R    ReflectionIT.vsmacros靰 `\舥鲕菡j醮???儇瞖痎~c銍$?杕la??im+HZeweLxd軇&8% @?凚
    )MIB
    而用的代码在textBox1中只显示P
    打开其他的文件也是一样,只要是二进制的都只显示1、2个字符。我取的是128的字节。应该有很多字符啊!!???
      

  2.   

    关注,希望能变成不是乱码,而是像UltraEdit左边那种两个字母组成的16进制形式。
      

  3.   

    byte[] 
    把得到的数据用国际字符格式,解码!!
    如:utf8,utf7,Ascii,这样才能正确显示.
    必须要先得到数据的原始编码类型
    我们一般默是Ascii