It seems like charCount == 0 should be a nop. Instead it throws an exception about overflowing a buffer. Same applies to Decoder.Convert. I hit this while writing tests for TranscodingStream.