Ну, во-первых, нет смысла создавать байтовый массив, а затем игнорировать его - поэтому ваш код будет проще:
byte[] byteEncString = Encoding.UTF8.GetBytes(_strToConvert);
return Convert.ToBase64String(byteEncString);
.NET char
может в конечном итоге иметь 3 байтакогда UTF-8 кодируется 1 , так что получается максимум 45 байт.Тем не менее, base64 преобразует 3 байта в 4 символа, так что в результате получается максимальная закодированная в base64 строка длиной 60 символов.Самолет представлен в виде суррогатной пары.Эта пара будет иметь длину 4 байта, но при этом будет 2 входных символа, поэтому в этом случае среднее число «байтов на char
» составляет всего 2.