перевод из koi8-r c#

Получаю ответ от сервера в кодировке koi8r, сразу пытаюсь преобразовать это в ASCII но на месте кириллицы появляются "?", тогда как с иностранным языком всё работает.

do
{
    numberOfBytesRead = stream.Read(readingData, 0, readingData.Length);
    completeMessage.AppendFormat("{0}", Encoding.ASCII.GetString(readingData, 0, numberOfBytesRead));
}
while (stream.DataAvailable);

Насколько я понял, кодировка Koi8r основана на ASCII и значения в диапазоне 0-127 у них вроде как совпадают, поэтому знаки(наверное) и иностранный язык отображаются корректно.

Как сделать, чтобы и русский язык тоже правильно работал? Из идей, было записать входной поток в список байт, а потом распечатывать его предварительно проверяя с совпадающим кодом из таблицы кодировки, но мне кажется, что должно быть более правильное решение. С GetEncoding("koi8r") тоже не получилось.


Ответы (1 шт):

Автор решения: Zufir

В .NET Core часть кодировок была исключена из поддерживаемых по умолчанию и вынесена в отдельный пакет.

Установите его в проект и добавьте в Startup.cs строку:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
→ Ссылка