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; }
public int IndexOfBytes(byte[] bytes , string key) { String str = System.Text.Encoding.Default.GetString(bytes); int index = str.IndexOf(key); return index; }
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或已知源字符编码,否则是不可能得到正确结果的...
public int IndexOf(byte[] p_Bytes1, byte[] p_Bytes2) { return BitConverter.ToString(p_Bytes1).IndexOf(BitConverter.ToString(p_Bytes2)) / 3; }
{
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;
}
public int IndexOfBytes(byte[] bytes , string key)
{
String str = System.Text.Encoding.Default.GetString(bytes); int index = str.IndexOf(key); return index;
}
{
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或已知源字符编码,否则是不可能得到正确结果的...
{ return BitConverter.ToString(p_Bytes1).IndexOf(BitConverter.ToString(p_Bytes2)) / 3; }