Esempio n. 1
0
        public JsonContainer Parse(Stream stream)
        {
            byte [] temp = new byte [1];
            stream.Read(temp, 0, 1);
            stream.Position = 0;

            if (temp [0] == ( byte )'{' || temp [0] == ( byte )'[' || temp [0] == ( byte )' ' || temp [0] == ( byte )'	'||
                temp [0] == ( byte )'\r' || temp [0] == ( byte )'\n')
            {
                return(ParseString(new MyStringReader(stream)));
            }
            else
            {
                int      skipByte;
                Encoding encoding = EncodingChecker.Check(stream, out skipByte);
                if (skipByte == 0)
                {
                    return(ParseBinary(new BinaryReader(stream)));
                }
                else
                {
                    stream.Position += skipByte; return(ParseString(new MyStringReader(stream, encoding)));
                }
            }
        }
        public void AssertEncodings()
        {
            List <string> landedTitlesFiles = FileProvider.GetFilesInDirectory(ApplicationPaths.LandedTitlesDirectory).ToList();

            foreach (string file in landedTitlesFiles)
            {
                string        fileName = PathExt.GetFileNameWithoutRootDirectory(file);
                List <string> lines    = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList();

                int lineNumber = 0;
                foreach (string line in lines)
                {
                    lineNumber += 1;

                    int charNumber = 0;
                    foreach (char c in line)
                    {
                        Assert.IsTrue(EncodingChecker.IsWindows1252(c), $"The '{file}' file contains a non-WINDOWS-1252 character at line {lineNumber}, position {charNumber}");
                    }
                }
            }
        }