Кодировка текста в потоке в C#
Один и тот же текст в UTF-8 и в UTF-16 занимает разное число байт. Латинская буква в первой кодировке занимает один байт, во второй - два. Свойство Encoding.Unicode задаёт UTF-16.
Метод GetByteCount считает байты самого текста и не добавляет служебную метку кодировки. Так оценивают размер данных до записи в сеть или файл.
Посчитаем размер слова "pi" в обеих кодировках:
using System.Text;
string word = "pi";
Console.WriteLine(Encoding.UTF8.GetByteCount(word)); // выведет 2
Console.WriteLine(Encoding.Unicode.GetByteCount(word)); // выведет 4
Выведите число байт UTF-8 для слова euro.