Пример #1
0
        private static bool TryDecodeUTF8NoBOM(Stream data, out string text)
        {
            text = null;

            var decoderFallback = new SimpleDecoderFallback();
            var utf8Encoding    = Encoding.GetEncoding(Encoding.UTF8.CodePage,
                                                       NoEncoderFallback, // this is arbitrary, since we'll never encode anything with this instance
                                                       decoderFallback);

            byte[] buffer = new byte[data.Length];
            data.Read(buffer, 0, buffer.Length);
            var decodedCharacters = utf8Encoding.GetString(buffer, 0, buffer.Length);

            if (!decoderFallback.WasInvoked)
            {
                text = decodedCharacters;
                return(true);
            }

            data.Position = 0;

            return(false);
        }
        private static bool TryDecodeUTF8NoBOM(Stream data, out string text)
        {
            text = null;

            var decoderFallback = new SimpleDecoderFallback();
            var utf8Encoding = Encoding.GetEncoding(Encoding.UTF8.CodePage,
                NoEncoderFallback, // this is arbitrary, since we'll never encode anything with this instance
                decoderFallback);

            byte[] buffer = new byte[data.Length];
            data.Read(buffer, 0, buffer.Length);
            var decodedCharacters = utf8Encoding.GetString(buffer, 0, buffer.Length);
            
            if (!decoderFallback.WasInvoked)
            {
                text = decodedCharacters;
                return true;
            }

            data.Position = 0;

            return false;
        }