Exemple #1
0
        // Does this string have any %6A sequences that are 3986 Unreserved characters?  These should be un-escaped.
        private unsafe bool CheckForEscapedUnreserved(string data)
        {
            fixed(char *tempPtr = data)
            {
                for (int i = 0; i < data.Length - 2; ++i)
                {
                    if (tempPtr[i] == '%' && IsHexDigit(tempPtr[i + 1]) && IsHexDigit(tempPtr[i + 2]) &&
                        tempPtr[i + 1] >= '0' && tempPtr[i + 1] <= '7')    // max 0x7F
                    {
                        char ch = UriHelper.EscapedAscii(tempPtr[i + 1], tempPtr[i + 2]);
                        if (ch != c_DummyChar && UriHelper.IsUnreserved(ch))
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }