C# Кодирование строки посимвольно

124
17 февраля 2019, 14:00

я не знаю, как каждый символ строки в цикле перекодировать в номер ASCII элемента. Имеется str - строка english\russian букв.

Это работает

byte[] bytes = Encoding.GetEncoding(1251).GetBytes(str);

А это нет - пишет,подчёркивает str[i] мол не удаётся char в char[] преобразовать. Может это из-за того, что в первом случае массив, а тут нет.

Encoding.GetEncoding(1251).GetBytes(str[i])

Мне бы представление номера в int, чтобы через него вычислять позицию символа в алфавите

Answer 1

Windows-1251 - однобайтовая кодировка. Следовательно, в итоговом массиве каждый байт будет сооветствовать одному символу строки с тем же индексом. Поэтому можно сперва всю строку перевести в массив байт в этой кодировке, а потом итерироваться по массиву, получая коды символов.

var str = "Привет";
byte[] bytes = Encoding.GetEncoding(1251).GetBytes(str);
for (int i = 0; i < bytes.Length; i++)
    Console.WriteLine(str[i] + " - " + bytes[i]);
Answer 2

На вход методу GetBytes нужно подавать строку или массив символов, но не один символ типа char. Поэтому следует преобразовывать символ в строку методом ToString.

Получившийся массив будет всегда иметь длину 1. Это и есть код символа.

var str = "Привет";
for (int i = 0; i < str.Length; i++)
{
    byte[] bytes = Encoding.GetEncoding(1251).GetBytes(str[i].ToString());
    Console.WriteLine(str[i] + " - " + bytes[0]);
}
READ ALSO
Не работает реклама admob в Unity на подписанном приложении

Не работает реклама admob в Unity на подписанном приложении

Использую теcтовый запуск рекламы по сэмплам гугл вот код:

111
.Net Core 2.0 схемы аутентификации

.Net Core 2.0 схемы аутентификации

Мне нужно написать back-end с двумя типами аутентификации: JWT для обычных пользователей и Cookie для администраторовЯ знаю, что это делается очень...

123
Передать данные из TextBox&#39;ов в базу SQL Server

Передать данные из TextBox'ов в базу SQL Server

На работе появилась необходимость передавать входные данные из TextBox'ов в базу данных SQL ServerВот мои попытки реализовать это

111
Unity + SignalR

Unity + SignalR

Начал разрабатывать один проект на UnityСерверную часть пишу на ASP

122