Decodes bytes with no information loss. Provides access to invalid byte sequences encountered in the string.
Inheritance: System.Text.DecoderFallback
コード例 #1
0
            private void Decode(out char[] chars, out List<byte[]> invalidCharacters) {
#if SILVERLIGHT
                chars = _owner.Encoding.Encoding.GetChars(_data, 0, _count);
                invalidCharacters = null;
#else
                Decoder decoder = _owner.Encoding.Encoding.GetDecoder();
                var fallback = new LosslessDecoderFallback();
                decoder.Fallback = fallback;

                // TODO: split into chunks for large strings?
                fallback.Track = true;
                chars = new char[decoder.GetCharCount(_data, 0, _count, true)];
                fallback.Track = false;
                decoder.GetChars(_data, 0, _count, chars, 0, true);

                invalidCharacters = fallback.InvalidCharacters;
#endif
            }
コード例 #2
0
 internal Buffer(LosslessDecoderFallback/*!*/ fallback) {
     Assert.NotNull(fallback);
     _fallback = fallback;
 }
コード例 #3
0
 internal Buffer(LosslessDecoderFallback /*!*/ fallback)
 {
     Assert.NotNull(fallback);
     _fallback = fallback;
 }