本帖最后由 Fingter 于 2009-11-26 22:49:48 编辑

解决方案 »

  1.   

    public int indexOfBytes(string key)
            {
                byte[] bytes = new byte[]{0x00,0x12,0x1f,0x43,0x68,0x69,0x6E,0x61};            String str = System.Text.Encoding.Default.GetString(bytes);            int index = str.IndexOf(key);            return index;
            }
      

  2.   


            public int IndexOfBytes(byte[] bytes , string key)
            {
                String str = System.Text.Encoding.Default.GetString(bytes);            int index = str.IndexOf(key);            return index;
            }
      

  3.   

    public int IndexOf(byte[] source,byte[] key)
    {
        string s = System.Text.Encoding.Unicode.GetString(source);
        string k = System.Text.Encoding.Unicode.GetString(key);    return s.IndexOf(k) * 2;
    }
    要保证它们的编码一致且不出现编码错误或丢失,所以最好用Unicode编码...Default是不行的,本机ANSI编码可能会因为源字符编码字符集更大而丢失字符,1楼的代码在英文系统中检索中文必定失败...而indexOf("China")这种除非源字符编码是UTF-8或已知源字符编码,否则是不可能得到正确结果的...
      

  4.   

      public int IndexOf(byte[] p_Bytes1, byte[] p_Bytes2)
            {            return BitConverter.ToString(p_Bytes1).IndexOf(BitConverter.ToString(p_Bytes2)) / 3;        }
      

  5.   

    zgke 好方法,这正是我要的