internal static Encoder GetThreadStatic(this Encoder nonDefault)
        {
            if (nonDefault != null)
            {
                nonDefault.Reset();
                return(nonDefault);
            }

            var encoder = _perThreadEncoder;

            if (encoder == null)
            {
                _perThreadEncoder = encoder = DefaultEncoding.GetEncoder();
            }
            else
            {
                encoder.Reset();
            }
            return(encoder);
        }