Таргетинг netcoreapp2.1
с этим кодом:
static void Main()
{
Console.InputEncoding = Console.OutputEncoding = Encoding.UTF8;
while (true)
{
var line = Console.ReadLine();
Console.WriteLine($"Length: {line.Length}");
Console.WriteLine($"Bytes: {string.Join(", ", Encoding.UTF8.GetBytes(line).Select(b => b.ToString()))}");
Console.WriteLine(line);
}
}
Когда я набираю что (русское слово), тогда вывод:
Length: 3
Bytes: 0, 0, 0
<<there is an empty line here>>
Когда я набираю Hello world , вывод будет:
Length: 11
Bytes: 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100
Hello world
Если я установлю кодировку ввода / вывода на Encoding.Unicode
, тогда она будет работать как положено (русское слово дает шесть байтовкак и следовало ожидать).Что дает?