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}"); } } } }