Чтение из порта, неправильное значение битконвертера

Я использую считыватель проксимити-карт для чтения номера карты. Используя программное обеспечение производителя, когда я читаю, я получаю этот номер:

BF 1C 08 04 01

Но с помощью моего приложения:

3F-1C-08-04-01

Код:

void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
            _received += sp.ReadExisting();
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] bytes = encoding.GetBytes(_received);
            bytes = SubArray(bytes, 5, 5);//to get only that I need
            string s2 = BitConverter.ToString(bytes);


            _received = s2.Replace("-", "");

            string result = SocketSendReceive(host, port);

            _received = "";
    }

Любые идеи?


person user13657    schedule 23.01.2015    source источник
comment
ASCII достигает только 127, но 0xBF превышает этот предел. Возможно, это проблема. Что произойдет, если вы используете Encoding.Default вместо ASCIIEncoding?   -  person Matthew Watson    schedule 23.01.2015
comment
Результат 01-0D-13-00-01-3F-1C-08-04-01-3F-53-3F, но я беру только 5 из индекса 5, так что это 3F-1C-08-04-01 - такое же неправильное значение   -  person user13657    schedule 23.01.2015
comment
Ну может есть другая тема с этой проблемой, но у меня при каждой кодировке получаются одни и те же (неправильные) значения.   -  person user13657    schedule 23.01.2015
comment
Так что да, ну, до сих пор понятия не имею, что не так, предполагая решение из этой другой темы.   -  person user13657    schedule 23.01.2015