diff --git a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs index 7d4532c4c818..c94118a82edc 100644 --- a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs +++ b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs @@ -133,7 +133,8 @@ private static void WriteMultiSegmentEncoded(PipeWriter writer, string text, Enc // Therefore, we check encodedLength - totalBytesUsed too. while (!completed || encodedLength - totalBytesUsed != 0) { - encoder.Convert(source, destination, flush: source.Length == 0, out var charsUsed, out var bytesUsed, out completed); + // 'text' is a complete string, the converter should always flush its buffer. + encoder.Convert(source, destination, flush: true, out var charsUsed, out var bytesUsed, out completed); totalBytesUsed += bytesUsed; writer.Advance(bytesUsed);