1
resposta

Método Get.String()

O método GetString fez um "foreach" no buffer, decodificando cada byte de acordo com o UTF-8? E como veio em linhas separadas se usamos o Console.Write em vez do WriteLine?

1 resposta

Olá Fabrizio

Sim, o método GetString faz um "foreach" no buffer, decodificando cada byte de acordo com o UTF-8. Ele utiliza a classe UTF8Encoding para fazer essa decodificação.

Quanto à sua pergunta sobre o uso do Console.Write em vez do Console.WriteLine, a diferença é que o Console.Write não faz a quebra de linha automaticamente, enquanto o Console.WriteLine faz. No entanto, mesmo utilizando o Console.Write, o resultado mostra um cliente por linha porque a quebra de linha também é um caractere e o programa compreende isso durante a decodificação.

Por exemplo, se tivermos o seguinte código:

var utf8 = new UTF8Encoding();
var buffer = new byte[] { 72, 101, 108, 108, 111, 10, 87, 111, 114, 108, 100 };
var texto = utf8.GetString(buffer);
Console.Write(texto);

O resultado será:

Hello
World

Note que mesmo utilizando o Console.Write, a quebra de linha é exibida corretamente.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software