コード例 #1
0
        public static void VerifyUtf32Encoding(UTF32Encoding encoding, bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes)
        {
            if (byteOrderMark)
            {
                if (bigEndian)
                {
                    Assert.Equal(new byte[] { 0, 0, 254, 255 }, encoding.GetPreamble());
                }
                else
                {
                    Assert.Equal(new byte[] { 255, 254, 0, 0 }, encoding.GetPreamble());
                }
            }
            else
            {
                Assert.Empty(encoding.GetPreamble());
            }

            if (throwOnInvalidBytes)
            {
                Assert.Equal(EncoderFallback.ExceptionFallback, encoding.EncoderFallback);
                Assert.Equal(DecoderFallback.ExceptionFallback, encoding.DecoderFallback);
            }
            else
            {
                Assert.Equal(new EncoderReplacementFallback("\uFFFD"), encoding.EncoderFallback);
                Assert.Equal(new DecoderReplacementFallback("\uFFFD"), encoding.DecoderFallback);
            }
        }
コード例 #2
0
        public void Ctor_Bool_Bool(bool bigEndian, bool byteOrderMark)
        {
            UTF32Encoding encoding = new UTF32Encoding(bigEndian, byteOrderMark);
            VerifyUtf32Encoding(encoding, bigEndian, byteOrderMark, throwOnInvalidBytes: false);

            Ctor_Bool_Bool_Bool(bigEndian, byteOrderMark, throwOnInvalidBytes: true);
            Ctor_Bool_Bool_Bool(bigEndian, byteOrderMark, throwOnInvalidBytes: false);
        }
コード例 #3
0
 public BfsBinaryReader(BinaryReader binaryReader, Endianness fileEndianness)
 {
     reader = binaryReader;
         FileEndianness = fileEndianness;
         asciienc = new ASCIIEncoding();
         utf7enc = new UTF7Encoding();
         utf32enc = new UTF32Encoding();
 }
コード例 #4
0
ファイル: function.cs プロジェクト: AnhThi/Mens-Shop
 public static string Mahoa(string chuoi)
 {
     UTF32Encoding u = new UTF32Encoding();
     byte[] b = u.GetBytes(chuoi);
     MD5 s = new MD5CryptoServiceProvider();
     byte[] kq = s.ComputeHash(b);
     return Convert.ToBase64String(kq);
 }
コード例 #5
0
    private static int getUnicodeCode(char character)
    {
        UTF32Encoding encoding = new UTF32Encoding();
        byte[] bytes = encoding.GetBytes(character.ToString().ToCharArray());

        //return BitConverter.ToInt32(bytes, 0).ToString("X");
        return BitConverter.ToInt32(bytes, 0);
    }
コード例 #6
0
 public void IsSingleByte(UTF32Encoding encoding, string _)
 {
     Assert.False(encoding.IsSingleByte);
 }
コード例 #7
0
 public void EncodingName(UTF32Encoding encoding, string _)
 {
     Assert.NotEmpty(encoding.EncodingName); // Unicode (UTF-32) in en-US
 }
コード例 #8
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
        public void Ctor_Bool_Bool_Bool(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes)
        {
            UTF32Encoding encoding = new UTF32Encoding(bigEndian, byteOrderMark, throwOnInvalidBytes);

            VerifyUtf32Encoding(encoding, bigEndian, byteOrderMark, throwOnInvalidBytes);
        }
コード例 #9
0
 public void Equals(UTF32Encoding encoding, object value, bool expected)
 {
     Assert.Equal(expected, encoding.Equals(value));
     Assert.Equal(expected, encoding.GetHashCode().Equals(value?.GetHashCode()));
 }
コード例 #10
0
 public void EncodingName(UTF32Encoding encoding, string description)
 {
     _ = description;
     Assert.NotEmpty(encoding.EncodingName); // Unicode (UTF-32) in en-US
 }
コード例 #11
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
 public void EncodingName(UTF32Encoding encoding, string _)
 {
     Assert.NotEmpty(encoding.EncodingName); // Unicode (UTF-32) in en-US
 }
コード例 #12
0
ファイル: LoginController.cs プロジェクト: psmon/webnori
        public LoginController()
        {
            parentSpace = "/api/login";
            dbhandler   = new DBLoginHandler(ConfigurationManager.AppSettings.Get("ConectionDBString"));

            Get["", true] = async(parameters, ct) => {
                //Default
                PageInfo pageInfo = new PageInfo();
                pageInfo.langcode = "ko_KR";
                pageInfo.langfile = string.Format("/js/lang/ko_KR.js");
                return(View["public/index.html", pageInfo]);
            };

            Get["/{langID}", true] = async(parameters, ct) => {
                PageInfo pageInfo = new PageInfo();
                pageInfo.langcode = parameters.langID;
                pageInfo.langfile = string.Format("/js/lang/{0}.js", parameters.langID);
                return(View["public/index.html", pageInfo]);
            };


            Post[parentSpace + "/createUser", true] = async(parameters, ct) =>
            {
                IDictionary <string, object> payload = GetPayLoad();
                int    socialType = (int)payload["socialType"];
                string socialID   = (string)payload["socialID"];
                string nickUtf8   = (string)payload["nick"];

                Encoding enc = new UTF32Encoding(true, true);
                //System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
                string nick = System.Net.WebUtility.UrlDecode(nickUtf8);
                //string picurl = (string)payload["picurl"];

                Random r         = new Random();
                int    imgNumber = r.Next(1, 72);
                string picurl    = String.Format("/img/avatar/default/avartar_{0:00}.png", imgNumber);

                string email = (string)payload["email"];
                string pw    = (string)payload["pw"];

                pw = Utils.DecryptStringAES(pw);
                pw = Utils.GetMD5Hash(pw);

                bool isValidEmail = true;
                if (socialType == 0)
                {
                    isValidEmail = isValidEmail && Utils.IsValidEmail(socialID);
                }
                ;
                isValidEmail = isValidEmail && Utils.IsValidEmail(email);
                if (!isValidEmail)
                {
                    return(new WebException("ApiError_InvalidEmail", (int)ErrorCode.ApiError_InvalidEmail));
                }

                int  createResult = -1;
                Task t            = Task.Run(() => {
                    createResult = dbhandler.sp_createuser(socialType, socialID, nick, picurl, email, pw);
                });
                await t;
                if (createResult != 0)
                {
                    return(new WebException("Create failed", createResult));
                }

                return(new WebOK());
            };

            Post[parentSpace + "/deleteUser", true] = async(parameters, ctor) =>
            {
                IDictionary <string, object> payload = GetPayLoad();
                string      authToken = (string)payload["authtoken"];
                DBLoginInfo loginInfo = null;

                Task taskCheckLogin = Task.Run(() => {
                    loginInfo = dbhandler.sp_validtoken(authToken, 1);
                });
                await taskCheckLogin;

                if (loginInfo == null)
                {
                    return(new WebException("Login failed", 401));
                }

                string firstID = loginInfo.SocialID.Split('@')[0].Substring(0, 5);
                if (firstID == "guest")
                {
                    return(new WebException("Cant't delete guest", 401));
                }

                int  deleteResult = -1;
                Task deleteUser   = Task.Run(() =>
                {
                    deleteResult = dbhandler.sp_deleteuser(loginInfo.SocialType, loginInfo.SocialID);
                });
                await deleteUser;

                if (deleteResult != 0)
                {
                    return(new WebException("Deleted failed", 500));
                }

                return(new WebOK());
            };

            Post[parentSpace + "/loginUser", true] = async(parameters, ct) =>
            {
                IDictionary <string, object> payload = GetPayLoad();
                int    socialType = (int)payload["socialType"];
                string socialID   = (string)payload["socialID"];
                string pw         = (string)payload["pw"];
                if (socialType != 0)
                {
                    return(new WebException("ApiError_NotAlow SocialLogin", 401));
                }
                pw = Utils.DecryptStringAES(pw);
                pw = Utils.GetMD5Hash(pw);

                bool isValidEmail = true;
                if (socialType == 0)
                {
                    isValidEmail = isValidEmail && Utils.IsValidEmail(socialID);
                }
                ;
                if (!isValidEmail)
                {
                    return(new WebException("ApiError_InvalidEmail", (int)ErrorCode.ApiError_InvalidEmail));
                }

                LoginOK result = null;
                Task    t      = Task.Run(() => {
                    result = dbhandler.sp_loginuser(socialType, socialID, pw);
                });
                await t;
                return(result);
            };

            Post[parentSpace + "/loginUserSocial", true] = async(parameters, ct) =>
            {
                IDictionary <string, object> payload = GetPayLoad();
                int    socialType = (int)payload["socialType"];
                string authToken  = (string)payload["authToken"];
                if (socialType == 0)
                {
                    return(new WebException("ApiError_NotAlow NormalLogin", 401));
                }
                LoginOK resultValue = new LoginOK();
                resultValue.statusCode = -401;

                //FB Mode
                if (socialType == 1)
                {
                    DBLoginInfo fbInfo = null;
                    Task        t      = Task.Run(() => {
                        fbInfo = FBAPI.GetUserData(authToken);
                    });
                    await  t;
                    Random r         = new Random();
                    int    imgNumber = r.Next(1, 72);
                    string picurl    = String.Format("/img/avatar/default/avartar_{0:00}.png", imgNumber);
                    if (fbInfo != null)
                    {
                        resultValue = dbhandler.sp_loginSocial(socialType, fbInfo.SocialID, fbInfo.Nick, picurl, fbInfo.Email);
                    }
                }
                return(resultValue);
            };

            Post[parentSpace + "/validate", true] = async(parameters, ct) =>
            {
                IDictionary <string, object> payload = GetPayLoad();
                string      authToken = (string)payload["authtoken"];
                DBLoginInfo loginInfo = null;

                Task t = Task.Run(() => {
                    loginInfo = dbhandler.sp_validtoken(authToken, 1);
                });
                await t;

                if (loginInfo == null)
                {
                    return(new WebException("Login failed", 401));
                }
                return(loginInfo.ToString());
            };

            Post["/test2/{id}/add/{category}"] = parameters => {
                return("post test");
            };
        }
コード例 #13
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
 public void WebName(UTF32Encoding encoding, string webName)
 {
     Assert.Equal(webName, encoding.WebName);
 }
コード例 #14
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
 public void CodePage(UTF32Encoding encoding, string webName)
 {
     Assert.Equal(webName == "utf-32" ? 12000 : 12001, encoding.CodePage);
 }
コード例 #15
0
ファイル: Text.cs プロジェクト: ptrelford/funbasic
/// <summary>Detects the presence of an encoding preamble in the first count bytes of the byte buffer.
/// If detectEncoding is false, this function only searches for the preamble of the given default encoding,
/// otherwise also for any of the standard unicode byte order marks (UTF-8, UTF-16 LE/BE, UTF-32 LE/BE).
/// If an encoding different from the given default encoding is detected, the new encoding
/// is assigned to the encoding reference.
/// Returns the number of bytes in the detected preamble, or 0 if no preamble is detected.
/// </summary>
        internal static int DetectPreamble(byte[] buffer, int count, ref Encoding encoding, bool detectEncoding)
        {
            Debug.Assert(count >= 0);
            if (detectEncoding && count >= 2)
            {
                switch (buffer[0])
                {
                case 0xEF:
                    if (buffer[1] == 0xBB && count > 2 && buffer[2] == 0xBF)
                    {
            #if !SILVERLIGHT && !NETFX_CORE
                        if (encoding.CodePage != 65001)
            #else
                        if (encoding.WebName != "utf-8")
            #endif
                        { encoding = Encoding.UTF8; }
                        return(3);
                    }
                    break;

                case 0xFE:
                    if (buffer[1] == 0xFF)
                    {
            #if !SILVERLIGHT && !NETFX_CORE
                        if (encoding.CodePage != 1201)
            #else
                        if (encoding.WebName != "utf-16BE")
            #endif
                        { encoding = Encoding.BigEndianUnicode; }
                        return(2);
                    }
                    break;

                case 0xFF:
                    if (buffer[1] == 0xFE)
                    {
                        if (count >= 4 && buffer[2] == 0x00 && buffer[3] == 0x00)
                        {
                #if !SILVERLIGHT && !NETFX_CORE
                            if (encoding.CodePage != 12000)
                            {
                                encoding = Encoding.UTF32; // UTF-32 little endian
                            }
                #else
                            // TODO: check at run time if encoding is available
                            if (encoding.WebName != "utf-32")
                            {
                                throw new NotSupportedException("An UTF-32 input encoding was detected, which is not natively supported under Silverlight.");
                            }
                #endif
                            return(4);
                        }
                        else
                        {
                #if !SILVERLIGHT && !NETFX_CORE
                            if (encoding.CodePage != 1200)
                #else
                            if (encoding.WebName != "utf-16")
                #endif
                            { encoding = Encoding.Unicode; // UTF-16 little endian
                            }
                            return(2);
                        }
                    }
                    break;

                case 0x00:
                    if (buffer[1] == 0x00 && count >= 4 && buffer[2] == 0xFE && buffer[3] == 0xFF)
                    {
            #if !SILVERLIGHT && !NETFX_CORE
                        if (encoding.CodePage != 12001)
                        {
                            encoding = new UTF32Encoding(true, true); // UTF-32 big endian
                        }
            #else
                        if (encoding.WebName != "utf-32BE")
                        {
                            throw new NotSupportedException("An UTF-32 (big endian) input encoding was detected, which is not natively supported under Silverlight.");
                        }
            #endif
                        return(4);
                    }
                    break;
                }
            }
            byte[] preamble = encoding.GetPreamble();
            if (preamble.Length > 0 && count >= preamble.Length)
            {
                int i = 0;
                while (buffer[i] == preamble[i])
                {
                    if (++i == preamble.Length)
                    {
                        return(preamble.Length);
                    }
                }
            }
            return(0);
        }
コード例 #16
0
        //Constraint is not needed for primitive type UniversalString.
        //Therefore no need to override VerifyConstraints method.

        #region Encode & Decode Functionality

        /// <summary>
        /// Provides encoding functionality in UniversalString way for a string.
        /// </summary>
        /// <param name="str"></param>
        /// <returns>The encoding result, in byte array form, big endian.</returns>
        private static byte[] UniversalStringEncode(string str)
        {
            UTF32Encoding be = new UTF32Encoding(true, false);

            return(be.GetBytes(str));
        }
コード例 #17
0
 public void IsSingleByte(UTF32Encoding encoding, string description)
 {
     _ = description;
     Assert.False(encoding.IsSingleByte);
 }
コード例 #18
0
 public void Clone(UTF32Encoding encoding, string _)
 {
     UTF32Encoding clone = (UTF32Encoding)encoding.Clone();
     Assert.NotSame(encoding, clone);
     Assert.Equal(encoding, clone);
 }
コード例 #19
0
 public void CodePage(UTF32Encoding encoding, string webName)
 {
     Assert.Equal(webName == "utf-32" ? 12000 : 12001, encoding.CodePage);
 }
コード例 #20
0
 public void Ctor_Empty()
 {
     UTF32Encoding encoding = new UTF32Encoding();
     VerifyUtf32Encoding(encoding, bigEndian: false, byteOrderMark: true, throwOnInvalidBytes: false);
 }
コード例 #21
0
        static public string DebugStringsDump(CharacterInformation pCharInfo, string pString)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine(pString);

            UTF32Encoding utf32withoutbom = new UTF32Encoding(false, false);

            List <string> characterList = new List <string>(GetOneCharacterEnumerator(pString));

            for (int i = 0; i < characterList.Count; i++)
            {
                string moji = characterList[i];
                sb.AppendFormat("[{0}]:{1}", i + 1, moji);

                byte[] bytetbl = utf32withoutbom.GetBytes(moji);
                for (int j = 0; j < bytetbl.Length; j += 4)
                {
                    if (j == 0)
                    {
                        sb.Append("(U+");
                    }
                    else
                    {
                        sb.Append("+");
                    }
                    sb.AppendFormat("{0:X}", BitConverter.ToInt32(bytetbl, j));
                }
                sb.Append(")");

                InfomationRecord charInfo = pCharInfo[characterList[i]];
                if (charInfo != null)
                {
                    if (charInfo.JISX0213Level != JISX0213Levels.None)
                    {
                        sb.AppendFormat(" {0}", charInfo.JISX0213Level);
                    }

                    if (charInfo.NameType != NameTypes.None)
                    {
                        sb.AppendFormat(" {0}", charInfo.NameType);
                    }

                    if (charInfo.ETaxAvailable)
                    {
                        sb.AppendFormat(" e-Tax");
                    }

                    if (charInfo.GakunenbetuKanji != GakunenbetuKanjis.None)
                    {
                        sb.AppendFormat(" {0}", charInfo.GakunenbetuKanji);
                    }

                    if (charInfo.NISAAvailable)
                    {
                        sb.AppendFormat(" NISA");
                    }

                    if (charInfo.ELTAXAvailable)
                    {
                        sb.AppendFormat(" eLTAX");
                    }
                }

                sb.AppendLine();
            }

            return(sb.ToString());
        }
コード例 #22
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
        public void Ctor_Empty()
        {
            UTF32Encoding encoding = new UTF32Encoding();

            VerifyUtf32Encoding(encoding, bigEndian: false, byteOrderMark: true, throwOnInvalidBytes: false);
        }
コード例 #23
0
        public static Encoding GetEncodingByBom(string filename)
        {
            //into as a string
            var xmlStr = XDocument.Load(filename).ToString();

            byte[] stringSide = Encoding.UTF8.GetBytes(xmlStr);
            byte[] memorySide = null;

            //into as a memory
            using (MemoryStream ms = new MemoryStream())
            {
                using (FileStream source = File.Open(filename, FileMode.Open))
                {
                    source.CopyTo(ms);
                }
                memorySide = ms.ToArray();
            }

            Encoding encodingResult = null;

            //compare content
            bool result = stringSide.SequenceEqual(memorySide);

            if (result)//the same then there is no BOM
            {
                //there is no BOM
                stringSide = null;
                memorySide = null;
                return(encodingResult);
            }

            byte[] utf8   = Encoding.UTF8.GetPreamble();
            byte[] bom    = memorySide.Take(utf8.Length).ToArray();
            bool   isUtf8 = utf8.SequenceEqual(bom);

            if (isUtf8)
            {
                encodingResult = Encoding.UTF8;
            }
            else
            {
                //byte[] latin = Encoding.Latin1.GetPreamble();
                //bom = memorySide.Take(latin.Length).ToArray();
                //bool isLatin = latin.SequenceEqual(bom);
                //if (isLatin)
                //    encodingResult = Encoding.Latin1;
                //maybe there is a different BOM
                //if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76)
                //encodingResult = Encoding.UTF7;
                if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf)
                {
                    encodingResult = Encoding.UTF8;
                }
                if (bom[0] == 0xff && bom[1] == 0xfe && bom[2] == 0 && bom[3] == 0)
                {
                    encodingResult = Encoding.UTF32; //UTF-32LE
                }
                if (bom[0] == 0xff && bom[1] == 0xfe)
                {
                    encodingResult = Encoding.Unicode; //UTF-16LE
                }
                if (bom[0] == 0xfe && bom[1] == 0xff)
                {
                    encodingResult = Encoding.BigEndianUnicode; //UTF-16BE
                }
                if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff)
                {
                    encodingResult = new UTF32Encoding(true, true);  //UTF-32BE
                }
            }
            stringSide = null;
            memorySide = null;
            bom        = null;
            //hard to detect the BOM type
            return(encodingResult);
        }
コード例 #24
0
 public void WebName(UTF32Encoding encoding, string webName)
 {
     Assert.Equal(webName, encoding.WebName);
 }
コード例 #25
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
 public void IsSingleByte(UTF32Encoding encoding, string _)
 {
     Assert.False(encoding.IsSingleByte);
 }
コード例 #26
0
ファイル: UTF32EncodingTests.cs プロジェクト: xuanmu/corefx
 public void Equals(UTF32Encoding encoding, object value, bool expected)
 {
     Assert.Equal(expected, encoding.Equals(value));
     Assert.Equal(expected, encoding.GetHashCode().Equals(value?.GetHashCode()));
 }
コード例 #27
0
        public void Read_Timeout()
        {
            using (SerialPort com1 = TCSupport.InitFirstSerialPort())
                using (SerialPort com2 = TCSupport.InitSecondSerialPort(com1))
                {
                    char[] charXmitBuffer = TCSupport.GetRandomChars(512, TCSupport.CharacterOptions.None);
                    byte[] byteXmitBuffer = new UTF32Encoding().GetBytes(charXmitBuffer);
                    char[] charRcvBuffer  = new char[charXmitBuffer.Length];

                    int result;

                    Debug.WriteLine(
                        "Verifying that Read(char[], int, int) works appropriately after TimeoutException has been thrown");

                    com1.Encoding    = new UTF32Encoding();
                    com2.Encoding    = new UTF32Encoding();
                    com1.ReadTimeout = 500; // 20 seconds

                    com1.Open();

                    if (!com2.IsOpen) //This is necessary since com1 and com2 might be the same port if we are using a loopback
                    {
                        com2.Open();
                    }

                    //Write the first 3 bytes of a character
                    com2.Write(byteXmitBuffer, 0, 3);

                    Assert.Throws <TimeoutException>(() => com1.ReadChar());

                    Assert.Equal(3, com1.BytesToRead);

                    com2.Write(byteXmitBuffer, 3, byteXmitBuffer.Length - 3);

                    TCSupport.WaitForExpected(() => com1.BytesToRead, byteXmitBuffer.Length,
                                              5000, "Err_91818aheid BytesToRead");

                    result = com1.ReadChar();

                    if (result != charXmitBuffer[0])
                    {
                        Fail("Err_0158ahei Expected ReadChar to read {0}({0:X}) actual {1}({1:X})", charXmitBuffer[0], result);
                    }
                    else
                    {
                        charRcvBuffer[0] = (char)result;
                        int readResult = com1.Read(charRcvBuffer, 1, charRcvBuffer.Length - 1);

                        if (readResult + 1 != charXmitBuffer.Length)
                        {
                            Fail("Err_051884ajoedo Expected Read to read {0} characters actually read {1}", charXmitBuffer.Length - 1, readResult);
                        }
                        else
                        {
                            for (int i = 0; i < charXmitBuffer.Length; ++i)
                            {
                                if (charRcvBuffer[i] != charXmitBuffer[i])
                                {
                                    Fail("Err_05188ahed Characters differ at {0} expected:{1}({1:X}) actual:{2}({2:X})", i, charXmitBuffer[i], charRcvBuffer[i]);
                                }
                            }
                        }
                    }

                    VerifyBytesReadOnCom1FromCom2(com1, com2, byteXmitBuffer, charXmitBuffer);
                }
        }