public static POParseResult Parse(this POParser @this, string input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } using (var reader = new StringReader(input)) return(@this.Parse(reader)); }
public static POParseResult Parse(this POParser @this, Stream input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } var reader = new StreamReader(input); return(@this.Parse(reader)); }
public static POParseResult Parse(this POParser parser, Stream input, Encoding encoding) { if (parser == null) { throw new ArgumentNullException(nameof(parser)); } if (input == null) { throw new ArgumentNullException(nameof(input)); } var reader = new StreamReader(input, encoding); return(parser.Parse(reader)); }
public static Encoding DetectEncoding(Stream stream) { var reader = new StreamReader(stream, Encoding.GetEncoding("ASCII"), detectEncodingFromByteOrderMarks: true); var parser = new POParser(new POParserSettings { ReadHeaderOnly = true, ReadContentTypeHeaderOnly = true }); POParseResult result = parser.Parse(reader); if (!result.Success) { return(null); } return (result.Catalog.Encoding != null? Encoding.GetEncoding(result.Catalog.Encoding) : reader.CurrentEncoding); }