Кодировки в консольном приложении CP866 - C#
Формулировка задачи:
Добрый день.
Принимаю данные с МК через COM порт. Но вместо русского текста получаю ?????? ??? ???? и т.д.
МК шлёт данные в кодировке CP866.
Пробовал гонять входные данные в разных направлениях: 866->UTF-8; UTF-8->866; 866->1251->UTF-8
Подскажите пожалуйста как с этим бороться =)
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
SerialPort mySerialPort = new SerialPort("COM4");
mySerialPort.BaudRate = 1200;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort.Open();
Console.WriteLine("Press any key to close application...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}
private static void DataReceivedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Encoding srcEncodingFormat = Encoding.GetEncoding("866");
byte[] originalByteString = srcEncodingFormat.GetBytes(indata);
indata = Encoding.UTF8.GetString(originalByteString);
Console.Write(indata);
}
}
}Решение задачи: «Кодировки в консольном приложении CP866»
textual
Листинг программы
Console.OutputEncoding = System.Text.Encoding.GetEncoding("CP866");