public static byte[] Decode(byte[] input, byte escapeChar, byte space) { byte[] result; using (MemoryStream memoryStream = new MemoryStream(input.Length)) { for (int i = 0; i < input.Length; i++) { if (input[i] == space) { memoryStream.WriteByte(32); } else if (input[i] == escapeChar && i + 2 < input.Length) { i++; memoryStream.WriteByte(WWWTranscoder.Hex2Byte(input, i++)); } else { memoryStream.WriteByte(input[i]); } } result = memoryStream.ToArray(); } return(result); }
public static byte[] Decode(byte[] input, byte escapeChar, byte[] space) { byte[] result; using (MemoryStream memoryStream = new MemoryStream(input.Length)) { for (int i = 0; i < input.Length; i++) { bool flag = WWWTranscoder.ByteSubArrayEquals(input, i, space); if (flag) { i += space.Length - 1; memoryStream.WriteByte(32); } else { bool flag2 = input[i] == escapeChar && i + 2 < input.Length; if (flag2) { i++; memoryStream.WriteByte(WWWTranscoder.Hex2Byte(input, i++)); } else { memoryStream.WriteByte(input[i]); } } } result = memoryStream.ToArray(); } return(result); }
public static byte[] Decode(byte[] input, byte escapeChar, byte space) { using (MemoryStream memoryStream1 = new MemoryStream(input.Length)) { for (int index = 0; index < input.Length; ++index) { if ((int)input[index] == (int)space) { memoryStream1.WriteByte((byte)32); } else if ((int)input[index] == (int)escapeChar && index + 2 < input.Length) { int num1 = index + 1; MemoryStream memoryStream2 = memoryStream1; byte[] b = input; int offset = num1; int num2 = 1; index = offset + num2; int num3 = (int)WWWTranscoder.Hex2Byte(b, offset); memoryStream2.WriteByte((byte)num3); } else { memoryStream1.WriteByte(input[index]); } } return(memoryStream1.ToArray()); } }