Microsoft.JScript.GlobalObject.InURISet C# (CSharp) Method

InURISet() private static method

private static InURISet ( char ch, URISetType flags ) : bool
ch char
flags URISetType
return bool
      private static bool InURISet(char ch, URISetType flags){
        if ((flags & URISetType.Unescaped) != URISetType.None){
          if (ch >= '0' && ch <= '9'
           || ch >= 'A' && ch <= 'Z'
           || ch >= 'a' && ch <= 'z')
            return true;
          switch (ch){
            case '-':  case '_': case '.':
            case '!':  case '~': case '*':
            case '\'': case '(': case ')':
              return true;
          }
        }
        if ((flags & URISetType.Reserved) != URISetType.None){
          switch (ch){
            case ';': case '/': case '?':
            case ':': case '@': case '&':
            case '=': case '+': case '$':
            case ',': case '#':
              return true;
          }
        }
        return false;
      }

Usage Example

Example #1
0
        private static String Encode(Object uri, URISetType flags)
        {
            String        uriStr    = Convert.ToString(uri);
            StringBuilder resultStr = new StringBuilder();

            for (int i = 0; i < uriStr.Length; i++)
            {
                char ch = uriStr[i];
                if (GlobalObject.InURISet(ch, flags))
                {
                    resultStr.Append(ch);
                }
                else
                {
                    int value = (int)ch;
                    if (value >= 0 && value <= 0x7F)
                    {
                        GlobalObject.AppendInHex(resultStr, value);
                    }
                    else if (value >= 0x0080 && value <= 0x07FF)
                    {
                        GlobalObject.AppendInHex(resultStr, value >> 6 | 0xC0);
                        GlobalObject.AppendInHex(resultStr, value & 0x3F | 0x80);
                    }
                    else if (value < 0xD800 || value > 0xDFFF)
                    {
                        GlobalObject.AppendInHex(resultStr, value >> 12 | 0xE0);
                        GlobalObject.AppendInHex(resultStr, value >> 6 & 0x3F | 0x80);
                        GlobalObject.AppendInHex(resultStr, value & 0x3F | 0x80);
                    }
                    else
                    {
                        if (value >= 0xDC00 && value <= 0xDFFF)
                        {
                            throw new JScriptException(JSError.URIEncodeError);
                        }
                        if (++i >= uriStr.Length)
                        {
                            throw new JScriptException(JSError.URIEncodeError);
                        }
                        int value1 = (int)uriStr[i];
                        if (value1 < 0xDC00 || value1 > 0xDFFF)
                        {
                            throw new JScriptException(JSError.URIEncodeError);
                        }
                        value = (value - 0xD800 << 10) + value1 + 0x2400;
                        GlobalObject.AppendInHex(resultStr, value >> 18 | 0xF0);
                        GlobalObject.AppendInHex(resultStr, value >> 12 & 0x3F | 0x80);
                        GlobalObject.AppendInHex(resultStr, value >> 6 & 0x3F | 0x80);
                        GlobalObject.AppendInHex(resultStr, value & 0x3F | 0x80);
                    }
                }
            }
            return(resultStr.ToString());
        }
All Usage Examples Of Microsoft.JScript.GlobalObject::InURISet