string 是unicode 的
也就是说每个字符都是双字节的
呵呵

解决方案 »

  1.   

    你把所有字符都当作双字节的就可以了(包括英文、数字、符号),并不会给你的定位带来混乱。unicode比你当字节的处理要优越的多,因为如果是单字节,你的定位要非常准确,否则就会出现乱码。如果你执意要使用单字节,你把定位和长度都除以2,不就可以了?
      

  2.   

    在C#中,所有的字符串缺省都是Unicode的,及不管是什么文字,一个字符都用两个字节表示,所以结果不是你设想中的情况
      

  3.   

    ok
    string first="纪念6/4";
    byte[] bytes = System.Text.Encoding.Default.GetBytes(first); 
    MessageBox.Show(System.Text.Encoding.Default.GetString(bytes,0,2));
    MessageBox.Show(System.Text.Encoding.Default.GetString(bytes,1,2));
    MessageBox.Show(System.Text.Encoding.Default.GetString(bytes,2,2));
    hope it helps
      

  4.   

    我认为你有可能在处理一个汉字与字符混和的文件。
    因为我遇到过这种情况。
    建议你用BinaryReader.ReadBytes()方法来读取。
    这样的话,你读取的应该是你的预期结果。