Example #1
0
        public static string UrlEncode(string s, Encoding Enc)
        {
            if (s == null)
                return null;

            if (s == String.Empty)
                return String.Empty;

            bool needEncode = false;
            int len = s.Length;
            for (int i = 0; i < len; i++)
            {
                char c = s[i];
                if ((c < '0') || (c < 'A' && c > '9') || (c > 'Z' && c < 'a') || (c > 'z'))
                {
                    if (MonoHttpEncoder.NotEncoded(c))
                        continue;

                    needEncode = true;
                    break;
                }
            }

            if (!needEncode)
                return s;

            // avoided GetByteCount call
            byte[] bytes = new byte[Enc.GetMaxByteCount(s.Length)];
            int realLen = Enc.GetBytes(s, 0, s.Length, bytes, 0);
            return Encoding.ASCII.GetString(UrlEncodeToBytes(bytes, 0, realLen));
        }
Example #2
0
        static MonoHttpEncoder()
        {
#if NET_4_0
            defaultEncoder     = new Lazy <MonoHttpEncoder> (() => new MonoHttpEncoder());
            currentEncoderLazy = new Lazy <MonoHttpEncoder> (new Func <MonoHttpEncoder> (GetCustomEncoderFromConfig));
#else
            defaultEncoder = new HttpEncoder();
            currentEncoder = defaultEncoder;
#endif
        }
Example #3
0
        public static byte[] UrlEncodeUnicodeToBytes(string str)
        {
            if (str == null)
                return null;

            if (str.Length == 0)
                return new byte[0];

            MemoryStream result = new MemoryStream(str.Length);
            foreach (char c in str)
            {
                MonoHttpEncoder.UrlEncodeChar(c, result, true);
            }
            return result.ToArray();
        }
Example #4
0
        static MonoHttpEncoder()
        {
#if NET_4_0
            defaultEncoder = new Lazy <MonoHttpEncoder> (() => new MonoHttpEncoder());
            // NOTE: We explicitly removed this line, we use MonoHttpUtility to avoid config issues and App_Start probelms
            // and we only use this internally for our own stuff, we never want to allow this configuration, and it is
            // something that we can safely disable

            // new Lazy <MonoHttpEncoder> (new Func <MonoHttpEncoder> (GetCustomEncoderFromConfig));
            currentEncoderLazy = defaultEncoder;
#else
            defaultEncoder = new HttpEncoder();
            currentEncoder = defaultEncoder;
#endif
        }